Java 有没有办法将列表放入SaveInstanceState包中?
我正在尝试在我的android应用程序的SaveInstanceState中存储2个字符串ArrayList和1个跨距ArrayList。这可能吗?如果是,你能举个例子吗Java 有没有办法将列表放入SaveInstanceState包中?,java,android,spanned,Java,Android,Spanned,我正在尝试在我的android应用程序的SaveInstanceState中存储2个字符串ArrayList和1个跨距ArrayList。这可能吗?如果是,你能举个例子吗 ArrayListList<String> businessNames = new ArrayList<String>(); List<Spanned> businessInfo = new ArrayList<Spanned>(); ArrayList<String>
ArrayListList<String> businessNames = new ArrayList<String>();
List<Spanned> businessInfo = new ArrayList<Spanned>();
ArrayList<String> businessCategories = new ArrayList<String>();
protected void onSaveInstanceState(Bundle bundle) {
super.onSaveInstanceState(bundle);
bundle.putStringArrayList("businessNames", businessNames);
bundle.putStringArrayList("businessCategories", businessCategories);
// ??????
bundle.putParcelableArrayList("businessInfo", businessInfo);
}
我自己解决了这个问题。下面是代码
ArrayList<String> businessNames = new ArrayList<String>();
List<Spanned> businessInfo = new ArrayList<Spanned>();
ArrayList<String> businessCategories = new ArrayList<String>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
expListView = (ExpandableListView) findViewById(R.id.lvExp);
String userChoice = (String) getIntent().getExtras().get("userChoice");
if (savedInstanceState != null){
businessInfo = (List<Spanned>) savedInstanceState.getSerializable("businessInfo");
businessNames = savedInstanceState.getStringArrayList("businessNames");
businessCategories = savedInstanceState.getStringArrayList("businessCategories");
new DisplaySavedResults().execute();
} else {
new RetreiveSearchResults().execute(userChoice);
}
}
protected void onSaveInstanceState(Bundle savedInstanceState) {
super.onSaveInstanceState(savedInstanceState);
savedInstanceState.putStringArrayList("businessNames", businessNames);
savedInstanceState.putStringArrayList("businessCategories", businessCategories);
savedInstanceState.putSerializable("businessInfo", (Serializable) businessInfo);
}
新的asynctask DisplaySavedResults只是在onPostExecute中更改UI。doInBackground为空。当doInBackground方法为空时,使用AsyncTask有什么意义?我想没有意义。只是我的一个懒惰的错误。这也可以通过一种方法来实现。