2012-03-15 6 views
1

フラグメントを表示するタブを持つアプリケーションがあります。私が持っている問題は、タブの1つが別のアクティビティを読み込んでデータベースに書き込むことです。ユーザーがそのアクティビティを終了し、フラグメントに戻ると、フラグメントがデータベースをチェックし、UI要素を隠すか、表示する必要があります。私は、dbをうまくチェックすることができます。フラグメントに戻るときに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" 

私はテントを介してデータベースに変更を加えた後に続いて、私はタブフラグメントに戻ります。これは、私がそれに行くたびにタブを更新するよう強制します。

これはおそらく他の人に役立つでしょう。

関連する問題