2012-03-15 60 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所做的更改到數據庫之後。這會強制每次進入該選項卡時刷新該選項卡。

也許這會幫助別人。