小编Thi*_*Roy的帖子

为什么不总是使用android:configChanges ="keyboardHidden | orientation"?

我想知道为什么不在 android:configChanges="keyboardHidden|orientation"每个(几乎每个;))活动中使用?

产品:

  • 无需担心您的活动被轮换
  • 它更快

不太好:

  • 如果它们取决于屏幕尺寸,需要更改布局(例如,布局有两列左右)

坏:

  • 没有灵活的方法在不同的方向上有不同的布局
  • 使用碎片时不太好

但如果我们不使用不同的布局,为什么不呢?

android android-layout

173
推荐指数
1
解决办法
9万
查看次数

为什么从Android的性能提示中删除了"避免只需要Ints的枚举"?

从官方开发者文档中删除了"避免只需要Ints的枚举"部分.(请参阅为什么Android不使用更多枚举?对于旧版内容)

为什么?是否有Android VM的更改使得提示过时了?

enums android

171
推荐指数
6
解决办法
3万
查看次数

接管一个项目 - 我应该问以前的程序员?

我正在接管一个商业网站的开发.该网站由另一位程序员开发了两年多.这主要是一个人的工作(维护和扩展网站).当其他程序员向我展示系统时,我将有2-3天的过渡期.但据我所知,文件很少.一切都在代码中(这是一种记录).以下是我计划到目前为止要问的内容:

  • 解释系统中最复杂的元素
  • 整体架构的描述
  • 支持工具的说明(IDE设置,单元测试,部署机制)
  • 他用来影响系统架构的任何书籍,网站和播客

我还缺少其他任何东西?

[编辑]谢谢大家.失去了好的主张.我希望我能接受不止一个答案!另外,我还要补充:

  • 你有什么专门为提高系统性能而做的,现在瓶颈在哪里?
  • 与此相关,您对系统的安全性做了什么?(你做了什么,现在安全漏洞在哪里)

最后一件事:开发人员说,如果我需要,他可以在以后回答我的问题.毕竟这是他的"宝贝".但我真的认为在6个月内他会继续前进,他的可用性将会大大降低!

documentation project

54
推荐指数
9
解决办法
5698
查看次数

使用hibernate注释将枚举映射到表

我有一个表DEAL和一个表DEAL_TYPE.我想映射这段代码:

public class Deal {
   DealType type;
}

public enum DealType {
   BASE("Base"), EXTRA("Extra");
}
Run Code Online (Sandbox Code Playgroud)

问题是数据已存在于数据库中.而且我很难将类映射到数据库.

数据库看起来像这样:

   TABLE DEAL {
      Long id;
      Long typeId;
   }

   TABLE DEAL_TYPE {
       Long id;
       String text;
   }
Run Code Online (Sandbox Code Playgroud)

我知道我可以使用简单的@OneToMany关系从交易到交易类型,但我更喜欢使用枚举.这可能吗?

我几乎使用EnumType.ORDINAL类型工作.但不幸的是,我的交易类型表中的ID不是顺序的,并且不是从1开始.

有什么建议?

java orm enums hibernate

28
推荐指数
3
解决办法
5万
查看次数

捕获XSS(跨站点脚本)攻击的最佳正则表达式(在Java中)?

杰夫实际上在Sanitize HTML中发布了这个.但他的例子是在C#中,我实际上对Java版本更感兴趣.有没有人有更好的Java版本?他的例子是否足以直接从C#转换为Java?

[更新]我已经对这个问题表示了赏心悦目,因为当我问这个问题时,SO并不那么受欢迎(*).至于与安全相关的任何事情,人们对它的看法越多,它就越好!

(*)事实上,我认为它仍处于封闭测试阶段

html java regex xss

23
推荐指数
2
解决办法
6万
查看次数

具有居中元素的Horizo​​ntalScrollView

我有一个使用TextViews动态填充的Horizo​​ntalScrollView.有时会有一个,两个,三个或更多元素.我正在寻找的是一种让项目居中的方法,无论元素的数量如何.

例如,使用一个元素:

| --------- MenuA --------- |
Run Code Online (Sandbox Code Playgroud)

有两个要素:

| ---- MenuA --- MenuB ---- |
Run Code Online (Sandbox Code Playgroud)

有三个要素:

| - MenuA - MenuB - MenuC - |
Run Code Online (Sandbox Code Playgroud)

有五个元素(MenuD和MenuE隐藏):

| MenuA - MenuB - MenuC - Me|
Run Code Online (Sandbox Code Playgroud)

更新:这是一个带有两个菜单的简单布局.如何将MenuA和MenuB居中?

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="fill_parent"
    android:layout_height="fill_parent">
    <HorizontalScrollView android:id="@+id/horizontalScrollView1"
        android:layout_width="wrap_content" android:layout_height="wrap_content">
        <LinearLayout android:id="@+id/linearLayout1"
            android:layout_width="fill_parent" android:layout_height="fill_parent"
            android:orientation="horizontal">
            <TextView android:text="MenuA" android:id="@+id/textView1"
                android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView>
            <TextView android:text="MenuB" android:id="@+id/textView2"
                android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView>
        </LinearLayout>
    </HorizontalScrollView>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

android horizontalscrollview

23
推荐指数
1
解决办法
1万
查看次数

如何"修复"SVN分支/树冲突?

我接管了一个软件项目并决定使用Tortoise SVN 将所有内容放在SVN(在Assembla上)下.行李箱在ROOT下.因此主干包含整个应用程序(我标记为1.0).对于我的第一个重要功能,我创建了一个名为"dev"的功能分支.

我可以将trunk分支中的更改合并到dev分支中而不会出现问题(因为我正在修复小错误).一旦我的功能完成,我就会合并回主干分支.到目前为止,一切都在发挥作用.ROOT下的新代码正确显示了新功能.但后来我做了一个提交(合并的结果),现在每次我尝试从root或dev分支进行合并时,SVN都抱怨许多文件的"树冲突".甚至是自合并以来我没有触及过的文件.我试图解决冲突,没有成功.

我是唯一的开发人员,因此我并不真正关心对存储库的重大更改.但是,如果可能的话,我仍然希望保留所有文件的历史记录.

解决此问题的最佳方法是什么?有没有办法可以将ROOT主干中的所有最新文件标记为文件的"明确"版本?


[编辑]更多信息

  1. 是的,'主'和'主干'是一回事.我澄清了我的问题
  2. 当您从功能分支合并回来时,您是否首先从中继进行另一次合并以获取最新的中继更改?"是的.主干是最新的.并且dev分支具有来自主干的所有更改.
  3. "一切都搞砸了":我的意思是提交很好,但是当我开始从主干/主干合并时,SVN抱怨'树冲突'.
  4. 我有超过200个树冲突.所以我正在寻找的是"接受所有"命令

[编辑] elhoim解决方案没有解决我的问题.但是,他对SVN版本问题是正确的.目前(2009-10-28),Assembla正在使用SVN v1.5.1,而我的tortoiseSVN则是v1.6.所以这就是我遇到这么多树冲突的原因.我尝试使用elhoim的链接提供的解决方案并且它不起作用(我在尝试HEAD-to-HEAD合并之前多次尝试了一堆合并.有些文件因此没有转移到根分支).

看到HEAD-to-HEAD合并仍然无效,我决定简单地删除分支文件夹中的所有".svn"文件,将文件复制到ROOT文件夹并进行提交.

svn branch

20
推荐指数
3
解决办法
5万
查看次数

为什么软件有EULA?

这是我所知道的唯一一个消费者必须同意只有律师才能理解的东西的产品.我确信车祸每年都会比软件事故造成更多人死亡.但是当我买车时,我没有像EULA那样签名.

那么为什么软件有EULA?是否发生了一次意外事故,导致软件公司需要保护自己?(第一个有EULA的软件是什么?)

[更新]只是为了清楚我的观点:我不明白为什么软件有EULA.没有其他我能想到的产品(甚至不是枪)!那么是什么让软件与众不同,这个产品需要某种"责任限制"?

顺便说一句,维基百科说"美国收缩包装许可证的法律地位有些不明确."

history licensing eula

18
推荐指数
4
解决办法
3061
查看次数

"选择"总是按主键排序吗?

对于所有DBA来说,这是一个基本的简单问题.

当我选择时,是否始终保证我的结果将由主键排序,或者我应该用'order by'指定它?

我正在使用Oracle作为我的数据库.

sql database oracle primary-key

17
推荐指数
2
解决办法
1万
查看次数

VideoView可以在不停止流的情况下分离和重新连接吗?

我正在构建一个应用程序,用户点击按钮以全屏显示视频.最初,视频附加到ViewPager内的视图.为了能够全屏显示,我将其与父项分离,并将其重新连接到根视图.这种方法很好,除非在播放时将视频切换为全屏.当我分离播放VideoView时,它只是停止,我需要重新启动它.这是不可接受的,因为视频在恢复之前开始缓冲.这里是完成分离的代码部分:

    final ViewGroup parent = (ViewGroup) findViewById(R.id.parent);

    final ViewGroup root = (ViewGroup) findViewById(R.id.root);

    Button b = (Button) findViewById(R.id.button);
    b.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            parent.removeView(mVideoView);

            LayoutParams lp = new FrameLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
            root.addView(mVideoView, lp);
        }
    });
Run Code Online (Sandbox Code Playgroud)

根据设备,我有一个不同的日志错误.可能是因为实际的视频播放器是由制造商提供的,而不是Android SDK.以下是Nexus 7的错误日志:

10-30 20:26:18.618: D/NvOsDebugPrintf(124): NvMMDecTVMRDestroyParser Begin 
10-30 20:26:18.618: D/NvOsDebugPrintf(124): --------- Closing TVMR Frame Delivery Thread -------------
10-30 20:26:18.678: D/NvOsDebugPrintf(124): ------- NvAvpClose -------
10-30 20:26:18.678: D/NvOsDebugPrintf(124): NvMMDecTVMRDestroyParser Done 
10-30 20:26:18.678: D/NvOsDebugPrintf(124): NvMMLiteTVMRDecPrivateClose Done 
Run Code Online (Sandbox Code Playgroud)

我无法在不停止的情况下分离视频.我尝试使用SurfaceView或TextureView但没有成功.

我也尝试过寻找第三方视频播放器.我发现了一个商业原因(http://www.vitamio.org/),我出于商业原因无法真正使用它.我找到了一个开源的,去年没有更新过(https://code.google.com/p/dolphin-player/).

我目前只在平板电脑上定位Android 4.2或更高版本. …

android ffmpeg vitamio android-videoview

13
推荐指数
1
解决办法
5921
查看次数