在我的应用程序中,我实现了一个Listview与CustomAdapter。Customadapter是由List对象(即List<ClassObject>
)创建的。加上List<ClassObject>
是动态的。这个ListView元素有一个按钮字段,用于从List<ClassObject>
中删除所选的ClassObject。
所有这些都在一个方向上工作得很好。但是当方向改变到另一个方向时,列表视图变得清晰,我通过代码检查,List<ClassObject>
变得清晰,List<ClassObject>.size()
返回零。
我对纵向和横向使用了不同的布局。
我尝试android:ConfigChanges="取向|屏幕大小"在manifest.xml,这是防止我的数据,但它持有一个纵向布局,即使改变为横向,它扰乱了我的布局。
我想知道如何防止我的数据与横向和纵向的单独布局相匹配。
应用程序应该工作API级别SDK 8到更高的15。
请告诉我onSaveInstanceState(Bundle outInstanceState)
和onRetainNonConfigurationInstance()
的区别。
当我看onRetainNonConfigurationInstance()上的开发人员。android,他们说在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已经停止"
我该怎么做?
我明白了。我把我的类改成了parcelable类,然后把ArrayList的对象传递给bundle。
现在,一切都很好很完美。如果有人需要帮助,请尽管说……