私は自分のプロジェクトでslidingmenuを使用しています。すべてのサイドメニュー項目はフラグメントです。
私のホームフラグメントには、フラグメントでもある2つのタブがあります。 (フラグメントAは、タブとして2つの子フラグメント、フラグメントBおよびCを有する)。私が他の断片から家の断片に戻ったときは、フラグメントAのOnResume()
が呼ばれています。 FragmentAの子であるFragmentBのonResume()
に電話する方法は?Android OnResume on childrenフラグメントが呼び出されていない
homefragmentがロードされるたびにFragmentBのビューを更新したいと思う唯一の選択肢は、OnResume()
です。
私はonResume()
のhomefragment(すなわちfragmentsA)でrefreshFragment()
メソッドを呼び出そうとしましたが、フラグメントがアクティビティにアタッチされていないというエラーが表示されています。
FragemntA以下
@Override
public void onResume() {
super.onResume();
mTabHost.setCurrentTab(mTabHost.getCurrentTab());
boolean settingschanged = sharedPrefrences.getBoolean(Constants.CHECK_CHANGE, false);
int unit = sharedPrefrences.getInt(Constants.DIMENSION_UNIT, 0);
SharedPreferences.Editor editor = sharedPrefrences.edit();
switch (mTabHost.getCurrentTab()) {
case 0:
((Outer) mFragments.get(0)).refreshView(unit);
((Outer) mFragments.get(0)).refreshFragment(settingschanged);
editor.putInt(Constants.DIMENSION_UNIT, unit);
editor.commit();
break;
case 1:
((Inner) mFragments.get(1)).refreshView(unit);
editor.putInt(Constants.DIMENSION_UNIT, unit);
editor.commit();
break;
default:
((Outer) mFragments.get(0)).refreshView(unit);
editor.putInt(Constants.DIMENSION_UNIT, unit);
editor.commit();
}
}
のonResumeのコードは、()クラッシュを取得していている:あなたは、このメソッドを使用することができます
09-16 14:13:34.608: E/AndroidRuntime(5758): java.lang.IllegalStateException: Fragment Outer{d34ce61} not attached to Activity
09-16 14:13:34.608: E/AndroidRuntime(5758): at android.support.v4.app.Fragment.getResources(Fragment.java:639)
を呼び出すことができますonPageSelected(で
は)**あなたは、私が)(** onResumeで – siddhesh@siddheshをリフレッシュするために、他の多くの方法があるonResumeでそれを更新していけませんどの子フラグメントが現在実行中であるかを確認し、フラグメントAのオブジェクトを使用して子フラグメントの必要な機能を呼び出すことを知ってください。 – hari86
を使用することができ、他のどのような方法を詳しく説明することができ –