2011-07-26 7 views
4

にはFragmentStatePagerAdapterがあります。ページャには、ユーザーがリスト内の項目間をスワイプできるように、同じフラグメントの複数のインスタンスが含まれています。私は目に見える項目だけに作用するオプションメニューをユーザに提供したいと思っています。マルチフラグメントアクティビティでのオプションメニューの使用

たとえば、フラグメント内にimageviewsで表示される画像のリストがあります。私は、ユーザーが壁紙として画像を設定できるオプションメニュー項目が必要です。

私がこれを試したときに、onPrepareOptionsMenuが呼び出されると、コードは複数のフラグメント(通常は現在のもの+次のもの)で呼び出されます。アイテムが選択されている場合も同じです。これにより、間違った画像が壁紙として設定されます。

現在表示されているフラグメント以上のオプションメニューのトリガーを防止するにはどうすればよいですか?

答えて

3

私の解決策は、onPageSelectedコールバックで現在表示されているFragmentのインデックスを把握するために、ViewPagersetOnPageChangeListenerメソッドを使用することでした。あなたはまだ最初のインデックスを自分で取得する必要がありますが、私のケースではこれは些細なものでした。

1

アクティビティのonOptionsItemSelectedでオプションメニューのコールバックを代行受信し、正しいフラグメントのアイテムを明示的に呼び出して、trueを返して処理したことを示すことができます。

+0

私は理解していない。 'FragmentActivity'に' onOptionsItemSelected'コードがあると言っていますか?しかし、どのようにすれば、正しい 'Fragment'への参照を得ることができますか? – blork

1

トリックはメニューに移る前に各フラグメントでセトオプションを変更することです(true | false)。これはすでに私を助けた

関連する問題