1

タッチイベントを無効にするカスタムViewpagerがあります。そのため、ビューページャーを制御する「次へ」ボタンと「戻る」ボタンがあります。私の質問は、ビューページャーのフラグメント間でデータまたはバンドルを渡す方法です。通常は機能しますが、フラグメントが表示されていなくても、フラグメントが作成されていることを検出します。これは、ビューページャーのスライド効果のためです。効果を機能させるには、前と前にフラグメントを作成する必要があります。つまり、フラグメントはすでに作成されているため、バンドルを使用できません。これが私がやろうとしていることです

フラグメント1->フラグメント2->フラグメント3

フラグメント1が作成され、フラグメント2も作成されます。[次へ]を押すと、フラグメント2が表示されます。もう一度[次へ]を押したときにバンドルをフラグメント3に渡したいのですが、フラグメント3は既に作成されているため、機能しません。

私が考えたもう1つの方法は、Viewpagerがフラグメントを現在のアイテムとして設定するときに、各フラグメントのメソッドを呼び出すことです。

4

2 に答える 2

1

すべてのフラグメントが実装するインターフェースを作成してみませんか?このインターフェースには、との2つのメソッドがgetParameterData()ありsetParameterData()ます。ViewPagerで、次または前を押したときにgetParameterData()、現在のフラグメントを呼び出しsetParameterData()てから、表示するフラグメントを呼び出します。

于 2012-04-09T20:30:00.827 に答える
1

ホストアクティビティでオブジェクトを保持することにより、フラグメント間でオブジェクトを共有/渡すことができます。

于 2012-04-09T20:17:46.577 に答える