1

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

我必须做什么?

4

1 回答 1

0

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

现在,一切正常且完美。如果有人需要帮助,请随时说..

于 2013-04-20T11:34:34.990 回答