在我的应用程序中,我使用 CustomAdapter 实现了一个 Listview。Customadapter 由 List 对象组成,即List<ClassObject>
. 除此之外,它List<ClassObject>
是动态的。而这个 ListView 元素有一个按钮字段,用于从List<ClassObject>
.
所有这些都在一个方向上正常工作。但是当方向更改为另一个时,列表视图变得清晰,我通过代码检查,List<ClassObject>
变得清晰并List<ClassObject>.size()
返回零。
而且我对纵向和横向使用不同的布局。
我在 manifest.xml 中尝试了 android:ConfigChanges="Orientation|Screensize",它阻止了我的数据,但即使更改为横向并且它弄乱了我的布局,它也会保留一个纵向布局。
我想知道如何通过匹配横向和纵向的单独布局来防止我的数据。
该应用程序应该可以在 API 级别 SDK 8 到更高 15 之间运行。
onSaveInstanceState(Bundle outInstanceState)
请告诉我和之间的区别onRetainNonConfigurationInstance()
。
当我在 developer.android 上查看 onRetainNonConfigurationInstance() 时,他们说它在 API 级别 13 中已被弃用。那么我们应该改用什么?
我确实想用下面的代码以某种方式保存数据。
protected void onSaveInstanceState(Bundle) {
// save your data
//lstRoughDetailsPL is an object of List<Rough>
outState.putSerializable(""+R.id.lstSO,(Serializable) lstRoughDetailsPL);
super.onSaveInstanceState(outState);
}
@SuppressWarnings("unchecked")
@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
// read your previously saved data
//lstRoughDetailsPL is an global object of List<Rough>
lstRoughDetailsPL = (List<Rough>)savedInstanceState.getSerializable(""+R.id.lstSO);
FillGrid();// used do fill the list view by looping around the List<Rough> and passing values as 4 string[] to a CustomAdapter which has 4 textview in each list entry.
}
但是当来电或从通知幻灯片打开另一个应用程序时,我的活动会被迷住。说“不幸的是,MyRoughWorkOutApp 已停止”
我必须做什么?