小编McP*_*McP的帖子

Android Parcelable占用更多内存

问题很简单,如果我将一个对象设为parcelable,并将其放入一个包中并使用该包创建一个片段.对象是否被克隆或被引用.

上下文.

我有一个在ArrayList中存储/引用的对象.取决于ArrayList中的对象类型(使用多态).我创建了一个适合处理它的片段.

我还需要将此对象传递给片段.该片段在自定义视图寻呼机中使用.我不希望有重复的对象,在我看来,可以克隆的克隆对象.

另一种方法是传递ArrayList中对象的索引.然后使用getActivity().myList.get(传递给Integer)从片段中获取对arraylist的引用.但它对我来说似乎不太安全(ArrayList内容可能会改变,虽然我只是删除所有内容并重新开始).我还读过,你应该避免将参数传递给片段构造函数,因为它可以使用默认的no-args构造函数重新创建.

(虽然我正在销毁任何重新创建的片段,因为重新连接到正确的视图有一些奇怪的问题,另一篇文章).

新的子问题:有没有办法通过引用片段传递值?

java memory android parcel parcelable

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

有些设备会忽略Manifest,Parse Error中的字符串资源

尝试使用字符串限定符在清单文件中设置方向

android:screenOrientation="@string/orientation"
Run Code Online (Sandbox Code Playgroud)

适用于4.0 asus平板电脑,但在2.1野火和4.1 Galaxy S上都失败了.问题实际上是链接到资源,如果输入肖像,则可以使用.

我试过更改平板电脑中使用的限定符来测试手机.这意味着所有设备都使用完全相同的代码,资源和布局.所以它不能拼写错误或构建问题.但它仍然在手机而不是平板电脑上失败了.这似乎是android中的另一个错误.

给出下面的错误,logcat中没有任何内容

Installation error: INSTALL_PARSE_FAILED_UNEXPECTED_EXCEPTION
Please check logcat output for more details.
Launch canceled!
Run Code Online (Sandbox Code Playgroud)

清单部分

<activity
    android:name=".MainActivity"
        android:screenOrientation="@string/orientation"
        android:label="@string/app_name">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
Run Code Online (Sandbox Code Playgroud)

我知道我可以以编程方式完成.但这是野火的另一个问题,而不是立即重启.相反,它等待视图设置等.这在其他设备中不会发生.

谷歌搜索并发现其他一些人使用这些方法,但他们似乎没有发现任何问题. http://capdroid.wordpress.com/2012/07/21/different-screen-orientation-on-different-screen-size

谢谢

resources parsing android manifest setorientation

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