鉴于我下面的xml文件,我想在我的对象列表不为空时显示ListView
,并且我想在列表为空时显示ViewStub
。我可以让它工作,但每当我改变屏幕方向时,我都会丢失我添加到列表中的新数据。
基本上,每当我添加一个新对象时,我都会调用我的适配器的changeData()方法,该方法会更改对象列表并调用方法notifyDataSetChanged()
。有关如何确保此更改在所有视图中持续存在的任何建议?
(XML中有更多内容,但它无关紧要):
<ListView android:layout_width="fill_parent"
android:layout_height="wrap_content" android:layout_weight="1"
android:id="@android:id/list"></ListView>
<ViewStub android:id="@android:id/empty"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center" android:layout="@layout/empty" />
</FrameLayout>
答案 0 :(得分:2)
您必须使用Bundle
方法中提供的savedInstanceState onCreate()
来维护您的屏幕状态。
每当您更改屏幕方向时,都会调用onCreate()
。
这里有一个例子:[CLICK]
答案 1 :(得分:0)
您在哪里保存数据?问题似乎是当你的Activity被销毁时你不会在任何地方坚持它。您的活动可以在方向更改时销毁,但是当您在后台并且系统内存不足时也会发生这种情况。
我建议您将数据保存在onPause,onStop或onDestroy调用的某处,并在相应的onResume,onStart或onCreate中重新加载。