[![片段和主要活动的屏幕快照] [1]] [1]我的演示应用程序的mainactivity有两个片段,通过单击检查按钮,将创建一个列表视图,但是,如果我旋转屏幕,该列表视图将被存储。我该如何存储这些数据以进行捆绑?
setRetainInstance(true);在这里不起作用。
我看到了以下代码,但不知道如何在捆绑包中存储map和obj的arraylist。
@Override
protected void onSaveInstanceState(Bundle outState) {
outState.putString("tvActivity",tvActivity.getText().toString());
outState.putInt("ivActivity", imageResource);
outState.putString("btnActivity",btnActivity.getText().toString());
super.onSaveInstanceState(outState);
}
下面是我的代码
private SimpleAdapter reusltAdapter;
private List<Map<String, Object>> qResult;
sqLiteHelper = new MySQLiteHelper(getActivity());
SQLiteDatabase db = sqLiteHelper.getReadableDatabase();
Cursor cursor = db.rawQuery("SELECT * FROM incometb WHERE date <= ? AND date >= ?", new String [] {String.valueOf(endday),String.valueOf(startday)});
qResult = new ArrayList<>();
while (cursor.moveToNext()) {
Map<String, Object> map = new HashMap<>();
Integer id = cursor.getInt(cursor.getColumnIndex("id"));
String date = cursor.getString(cursor.getColumnIndex("date"));
String cate = cursor.getString(cursor.getColumnIndex("cate"));
String title = cursor.getString(cursor.getColumnIndex("title"));
Integer money = cursor.getInt(cursor.getColumnIndex("money"));
int[] imgIds = new int[]{R.drawable.salary,R.drawable.other};
if(cate.equals("salary")){
map.put("icon",imgIds[0]);
}else{
map.put("icon",imgIds[2]);
}
map.put("id", id);
map.put("date", date);
map.put("cate", cate);
map.put("title", title);
map.put("money", money);
qResult.add(map);
}
reusltAdapter = new SimpleAdapter(getActivity(), qResult, R.layout.account_book_item
, new String[]{"icon","date","cate","title", "money"}, new int[]{R.id.item_img,R.id.date,R.id.cate,R.id.title, R.id.money});
resultListView.setAdapter(reusltAdapter); ```
[1]: https://i.stack.imgur.com/YnDad.png
[2]: https://i.stack.imgur.com/AfgGW.png
3选项:
android:configChanges="keyboardHidden|orientation"
在该活动上