学向勤中得,萤窗万卷书。这篇文章主要讲述Android中的方向更改时,列表视图会被清除(使用customAdapter,List )相关的知识,希望能为你提供帮助。
在我的应用程序中,我使用CustomAdapter实现了Listview。 Customadapter由List对象构成,即List<
ClassObject>
。而这个List<
ClassObject>
的补充是动态的。此ListView元素有一个按钮字段,用于从List<
ClassObject>
中删除所选的ClassObject。
所有这些在一个方向上都很好。但是当方向改变为另一个时,列表视图变得清晰,我通过代码检查,List<
ClassObject>
变得清晰,List<
ClassObject>
.size()
返回零。
我正在使用不同的布局来纵向和横向。
我在manifest.xml中尝试了android:ConfigChanges =“Orientation | Screensize”,它阻止了我的数据,但即使更改为横向并且它正在弄乱我的布局,它仍然保持一个纵向布局。
我想知道如何通过匹配横向和纵向的单独布局来阻止我的数据。
该应用程序应该将API级别SDK 8工作到更高15。
请告诉我onSaveInstanceState(Bundle outInstanceState)
和onRetainNonConfigurationInstance()
之间的区别。
当我在developer.android上查看ReturnNonConfigurationInstance()时,他们说它在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。
【Android中的方向更改时,列表视图会被清除(使用customAdapter,List )】现在,一切都很好,完美。如果有人需要帮助,请随时说..
推荐阅读
- 适用于Android ListView的适配器类getView()函数
- 如何根据android视图中的可见内容调整大小()
- Android - 使用空textview的SwipeRefreshLayout
- Android ViewPager,ListFragments以及更新列表中的元素时更新
- 需要Android数据库帮助
- 如何将ListView标题放入Android泡泡中
- Android ListView ContextMenu
- 我可以在通用Android应用程序中使用WearableListView吗()
- 如何在Android中的ListView中突出显示行()