Gla*_*r89 1 java android android-fragments fragmentpageradapter android-sqlite
我有FragmentPagerAdapter的问题.
我无法保存片段的状态,然后在片段中有视图.每当我使用左右滑动时,通过覆盖扩展FragmentPagerAdapter的静态类中的方法getItem(int position)来重新创建Fragment.
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);
}
}
Run Code Online (Sandbox Code Playgroud)
在Fragment的每个实例的OnCreateView方法中,SQLite数据库有几个步骤,这会导致数据库连接池的饱和.
每当更改动态片段时发现警告:"W/SQLiteConnectionPool(1111):数据库'/ data/data/com.myapp/databases/mydb'的SQLiteConnection对象被泄露!请修复您的应用程序以正确结束正在进行的事务,关闭数据库时不再需要它."
我已经尝试使用FragmentStatePagerAdapter但没有成功.
你能告诉我怎么办吗?我不希望每次都重新生成Fragment,从而导致数据库出现问题.你有一个保存片段/查看状态的例子吗?
我现在还没有找到任何建议.非常感谢你
为ViewPager对象使用setOffscreenPageLimit属性.
ViewPager pager = (ViewPager) findViewById(R.id.viewPagerId);
pager.setOffscreenPageLimit(2);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2358 次 |
| 最近记录: |