我有一个使用RecyclerView
的应用程序,该应用程序由Google的codelabs制造。当从LinkedList<String>
中敲击TtextView
项目时,它将更改为"单击 属性值",但是在旋转我的设备时,活动的活动仅显示为"属性值。此外,在敲击Fab Icon上,它也会在LinkedList<string>
中添加一个新单词,这也是旋转设备时清除。我的问题是,如何保存应用程序的insatance
状态,即活动不会在旋转时被破坏。
这是该项目的链接:[https://github.com/joblessjoker/recyclerview]
Android Framework提供了一种特殊的方法,可以保存状态
onSaveInstanceState()
在此方法中,您可以保存列表的状态。一种方法是将其保存在给出的捆绑包中。
然后,您将在您的ongreate和oncreateview方法中收到相同的捆绑包,您可以在其中使用它们来获取先前保存的数据。
替代方法是将数据保存在Onpause((中的共享Preferences或Database之类的持久存储中,然后在OnResume((或随时随地获取此数据。
。所有这些方法都是有效的,所有这些方法都很好,您选择的方法取决于您
@Override
public void onSaveInstanceState(Bundle out){
out.putString("test","test");
super.onSaveInstanceState(out);
}
@Override
public void onCreate(Bundle savedInstance){
if(savedInstance!=null){
//We have saved state
String test = savedInstance.getString("test");
}else{
//We do not have saved state, get the data from intent extra or argument for fragment
String test = getIntent().getStringExtra("test");
}
}
您可以以这种方式保存与您相关的数据