0

1 つのフラグメント アクティビティに複数のフラグメントを追加しています。[戻る] ボタンをクリックした後で、現在ユーザーに表示されているフラグメントを取得する方法はありますか?

現在のフラグメントのタグを設定に保存し、戻るボタンが押されたときに更新することで、これを実行しようとしました。それは面倒ですが、うまくいきます。ただし、システムが提供する方法を使用する方が良いと思います。

残念ながら、このシナリオでは、onResume と onStart はフラグメントに対して機能しないようです。

これを処理するより良い方法はありますか?

4

1 に答える 1

0

私も仕事でこの状況に直面しています:私はこのようにしています:

プッシュとポップを管理するフラグメント アクティビティのサブクラス

public class KFragmentActivity extends FragmentActivity{

private KFragment currentFragment;


//add new fragment
public void pushFragment(Class clz) {

  //fragment = new fragement instance;
  //hold the current instance
  currentFragment = fragment;
}


//
public void popTopFragment() {
    getSupportFragmentManager().popBackStackImmediate();
    currentFragment = null;
    int cnt = getSupportFragmentManager().getBackStackEntryCount();
    if (cnt > 0) {
        String name = getSupportFragmentManager().getBackStackEntryAt(cnt - 1).getName();
                    //hold current instance
        currentFragment = (KFragment) getSupportFragmentManager().findFragmentByTag(name);
        currentFragment.onBackFailed(null);
    }
   }

 }
于 2013-07-21T15:31:31.187 に答える