2012-03-15 61 views
1

我有一个应用程序具有显示片段的选项卡。我遇到的问题是其中一个选项卡加载另一个活动,然后写入数据库。当用户完成该活动并返回片段时,我希望片段检查数据库并隐藏或显示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(); 
     } 
    } 

它仍然没有重新绘制选项卡。

我怎样才能做到这一点?如果任何人有更好的想法,我也愿意以其他方式更广泛地处理这个问题。

回答

1

所以我解决了我自己的问题。这可能是一种破解,并且与onTabReselected()无关,但解决方案如下。

在AndroidManifest.xml我下面的行添加到该选项卡活动:

android:stateNotNeeded="true" 

然后我返回选项卡的片段,我通过一个Intent所做的更改到数据库之后。这会强制每次进入该选项卡时刷新该选项卡。

也许这会帮助别人。