【发布时间】:2019-12-28 16:25:06
【问题描述】:
在我的 android 应用程序中,我将数据从数据库加载到片段内的 ListView 中。如果查询从数据库返回空,则会显示一个文本视图,显示“Nothing to Display”,但如果接收到数据,它会显示“项目列表”,下面是一个带有检索数据的 ListView。一切正常,但问题是当我使用空数据库启动应用程序时,它显示文本视图“Nothing to Display”但是当我在应用程序运行时将数据插入数据库时,转到另一个片段并返回它显示“列表项目”,下面的 Listview 中没有项目,我需要重新启动应用程序才能让数据显示在 ListView 中。
我查找了解决方案,他们说可以通过附加和分离片段来刷新/重新加载片段来修复它。
FragmentManager manager = getSupportFragmentManager();
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem menuItem) {
switch (menuItem.getItemId()){
case R.id.js_nav_home:
manager.beginTransaction().replace(R.id.js_fragment_container, new js_HomeFragment()).commit();
break;
case R.id.js_nav_profile:
manager.beginTransaction().replace(R.id.js_fragment_container, profileFragment)
.commit();
break;
case R.id.js_nav_find:
manager.beginTransaction().replace(R.id.js_fragment_container, new js_MatchFragment())
.commit();
break;
case R.id.js_nav_logout:
finish();
break;
}
drawer.closeDrawer(GravityCompat.START);
return true;
}
我试过了
manager.beginTransaction().detach().attach(this).
replace(R.id.js_fragment_container, new js_HomeFragment()).commit();
但我不知道要在“detach()”函数中放入什么参数。或者如果这是分离和连接的正确方法。
谢谢!对不起我的英语不好。
【问题讨论】:
-
这听起来和stackoverflow.com/a/59446471/2373819中的问题一模一样
-
我只想通过分离和附加来刷新/重新加载我的片段
标签: android android-fragments fragmentmanager