Я использую Android Studio, и я создал Activity, который содержит NavigationDrawerFragment. Один из фрагментов - это загрузка содержимого базы данных SQLite внутри ListView с использованием настраиваемого массива ArrayAdapter со сложными элементами.Как сохранить содержимое ListView даже после изменения фрагмента через ящик
Моя проблема заключается в том, что если я выберу еще один фрагмент в ящике, вернитесь к нему, снова вызывается onCreate() из Fragment, так же как и onCreateView(), и база данных загружается еще раз.
Как я могу сохранить все, не загружая базу данных и не заполняя список еще раз?
У меня нет этой проблемы при изменении ориентации, поэтому я немного смущен. Может быть, это потому, что у меня есть макет как для портрета, так и для пейзажа?
вот код onCreateView()
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
getActivity().getActionBar().show();
View view = inflater.inflate(R.layout.fragment_papers, container, false);
allItems = new ArrayList<ItemData>();
getAllItemsFromDB("");
mAdapter = new ItemsList(getActivity(), allItems, this, mDBApi);
// Set the adapter
mListView = (AbsListView) view.findViewById(R.id.list);
mListView.setAdapter(mAdapter);
// Set OnItemClickListener so we can be notified on item clicks
mListView.setOnItemClickListener(this);
mListView.setOnScrollListener(this);
return view;
}
и getAllItemsFromDB() содержит что-то вроде
public void getAllItemsFromDB(String query){
Cursor c = sqldb.rawQuery("SELECT * FROM 'Table' " + query, null);
while (c.moveToNext()) {
allItems.add(parseSQL(sqldb, c));
}
c.close();
}
вы понять это @Myoch – Dan