У меня проблема с FragmentPagerAdapter.
Я не могу сохранить состояние фрагмента, а затем возникает мнение, что внутри фрагмента . Всякий раз, когда я использую пролистывание влево и вправо, фрагмент воссоздается путем переопределения метода getItem(int position) в статическом классе, который расширяет FragmentPagerAdapter.
public static class GraphicsCollectionPagerAdapter extends FragmentPagerAdapter {
final int NUM_ITEMS = 3; // number of tabs
public GraphicsCollectionPagerAdapter(FragmentManager fm) {
super(fm);
fragmentList = new AnalyzeFragmentPageListWithDate();
fragment1 = new AnalyzeFragmentPage1();
fragment2 = new AnalyzeFragmentPage2();
}
@Override
public Fragment getItem(int position) {
//Log.i(TAG, "getItem() -> New fragment at position " + position);
switch (position) {
case 0:
return fragmentList;
case 1:
return fragment1;
case 2:
return fragment2;
}
return null;
}
@Override
public int getCount() {
return 3;
}
@Override
public CharSequence getPageTitle(int position) {
switch (position) {
case 0:
return "Fragm1";
case 1:
return "Fragm2";
case 2:
return "Fragm3";
}
return "OBJECT " + (position + 1);
}
}
В методе OnCreateView каждого экземпляра фрагмента есть несколько шагов к базе данных SQLite, и это вызывает насыщение пула соединений с базой данных.
Предупреждение, обнаруживаемое при каждом динамическом изменении фрагмента: «W/SQLiteConnectionPool (1111): объект SQLiteConnection для базы данных «/data/data/com.myapp/databases/mydb» просочился! Пожалуйста, исправьте свое приложение, чтобы правильно завершать выполняемые транзакции и закрыть базу данных, когда она больше не нужна».
Я уже безуспешно пытался использовать FragmentStatePagerAdapter.
Не могли бы вы сказать мне, как действовать дальше? Я не хочу, чтобы фрагмент каждый раз регенерировался, вызывая проблемы с базой данных. У вас есть пример сохранения фрагмента/просмотра?
Я не нашел ни одного предложения на данный момент. большое спасибо