我有一个应用程序,其中包含显示片段的选项卡。我遇到的问题是其中一个选项卡加载了另一个活动,然后写入数据库。当用户完成该活动并返回到片段时,我希望片段检查数据库并隐藏或显示UI元素。我可以检查数据库就好了。我无法在返回片段时修改UI。
我试图.invalidate()视图。 我已经尝试将所有重绘UI内容放在onResume()中,它永远不会被调用。
我觉得它应该与我的Tab FragmentActivity有关。这就是我所拥有的。
@Override
public void onTabReselected(Tab tab) {
FragmentTransaction ft = mActivity.getSupportFragmentManager().beginTransaction();
if (mFragment == null) {
mFragment = Fragment.instantiate(mActivity, mClass.getName(), mArgs);
ft.add(android.R.id.content, mFragment, mTag);
ft.commit();
} else {
ft.attach(mFragment);
ft.commit();
}
}
它还没有重新绘制标签。
我该怎么做?如果有人有更好的想法,我也会更倾向于采取其他方式来解决这个问题。
答案 0 :(得分:1)
所以我解决了自己的问题。它可能是一个hack并且与onTabReselected()无关,但解决方案如下。
在AndroidManifest.xml中,我将以下行添加到标签活动:
android:stateNotNeeded="true"
然后,在通过Intent对数据库进行更改后,我返回到标签片段。这会强制标签每次进入时都会刷新。
也许这会帮助别人。