我正在尝试让我的对象Parcelable.但是,我有自定义对象,这些对象具有ArrayList我所做的其他自定义对象的属性.
最好的方法是什么?
我想实现一个屏幕,Activity和所有其他sreens与Fragments和managing all the fragments thru the activity.
这是个好主意吗?我的答案是否定的,但我仍然想更清楚地了解这个想法.
这个想法的优点和缺点是什么?
注意:
请不要给我片段和活动的链接.
编辑:
这是碎片和活动的一部分:
优点:
缺点:
如果我们不考虑平板电脑,为什么要使用碎片?活动和片段之间的起始时间差是多少?
android android-layout android-lifecycle android-fragments android-activity
我已经看到了一些类似的问题,关于onSaveInstanceState没有被称为Fragments,但在我的情况下Fragment工作正常,这是主要FragmentActivity的麻烦.
相关代码看起来很简单:
public class MyFActivity extends FragmentActivity implements ActionBar.TabListener {
String[] allValues; // data to save
@Override
protected void onSaveInstanceState (Bundle outState) {
Log.d("putting it!", allValues.toString());
outState.putStringArray("allValues", allValues);
super.onSaveInstanceState(outState);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (savedInstanceState != null) {
allValues = savedInstanceState.getStringArray("allValues");
Log.d("getting it!", allValues.toString());
}
}
}
Run Code Online (Sandbox Code Playgroud)
暂停活动时(使用后退按钮),onSaveInstanceState永远不会调用,因此,在恢复应用程序时savedInstanceState始终null在onCreate方法内.我尝试添加这样的块:
@Override
public void onPause() {
super.onPause();
onSaveInstanceState(new Bundle());
}
Run Code Online (Sandbox Code Playgroud)
这是在/sf/answers/993664171/中建议的,但是当 …