Android中的方向更改时,列表视图会被清除(使用customAdapter,List )

问题描述 投票:1回答:1

在我的应用程序中,我使用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已停止”

我该怎么办?

android-listview android-custom-view android-orientation device-orientation orientation-changes
1个回答
0
投票

我想到了。我将我的类更改为parcelable类,然后将ArrayList的对象传递给bundle。

现在,一切都很好,完美。如果有人需要帮助,请随时说..

© www.soinside.com 2019 - 2024. All rights reserved.