1

フラグメント アクティビティにフラグメントがあります。フラグメント ダイアログを表示するために、フラグメント アクティビティに実装されているフラグメントにインターフェイスがあります。これまでのところ問題はありません。ダイアログをポップアップできます。フラグメント アクティビティは、ユーザーがヒットしたときに OK/キャンセル ボタンを取得できます。

さて、私の質問は、フラグメントにOK/キャンセルがクリックされたことを知らせる方法(フラグメントアクティビティで別のインターフェイスを作成してフラグメントに実装するのではなく、別の方法)があるかどうかです。

4

1 に答える 1

0

アクティビティは使用するフラグメントを認識している必要があるため、フラグメントを簡単に取得し、実際のクラスにキャストして (新しいインターフェイスが必要ない場合)、そのパブリック メソッドを呼び出します。

ArticleFragment articleFrag = (ArticleFragment)
    getSupportFragmentManager().findFragmentById(R.id.article_fragment);

if (articleFrag != null) {
            // If article frag is available, we're in two-pane layout...

            // Call a method in the ArticleFragment to update its content
            articleFrag.updateArticleView(position);
        } else {
            // Otherwise, we're in the one-pane layout and must swap frags...

            // Create fragment and give it an argument for the selected article
            ArticleFragment newFragment = new ArticleFragment();
            Bundle args = new Bundle();
            args.putInt(ArticleFragment.ARG_POSITION, position);
            newFragment.setArguments(args);

            FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();

            // Replace whatever is in the fragment_container view with this fragment,
            // and add the transaction to the back stack so the user can navigate back
            transaction.replace(R.id.fragment_container, newFragment);
            transaction.addToBackStack(null);

            // Commit the transaction
            transaction.commit();
        }

注: このコードはhereから取得されます。

于 2013-04-19T10:12:30.160 に答える