android - 如何在ViewPager中的各个Fragment间传递数据并刷新Fragment界面?
ringa_lee
ringa_lee 2017-04-17 15:00:42
0
3
856

tablayout+viewpager+fragment实现的下图的效果,怎么在各个Fragment中传递数据并刷新界面?

如图中,点击“菜单”中的按钮,如何在购物车中接收并刷新界面。

ringa_lee
ringa_lee

ringa_lee

全員に返信(3)
阿神

フラグメントがすでに存在する場合、fragment.setArguments(bundle) 経由でパラメータを渡そうとすると例外が発生します:

リーリー

Fragment を更新する私の一般的な方法は、Fragment のパブリック メソッドを定義することです。

リーリー

次に、更新する必要があるフラグメントを取得し、このメソッドを呼び出します。
フラグメントが 4 つしかないことを考慮すると、配列またはリストを使用して、これら 4 つのフラグメントのインスタンスをアクティビティに保存してみることができます (この方法は比較的愚かです)。
そして、FragmentPagerAdapter でページを切り替えるときにフラグメント インスタンスが破壊されないように、FragmentStatePagerAdapter の代わりに ViewPager を使用する必要があります。 ViewPager

で Fragment を更新および置換する方法については、私の記事を参照してください。
いいねを押す +0
PHPzhong

プロキシ モードを使用して、リバース バリュー転送を実装します。

アクティビティは、これらのフラグメントの親セットに相当します (フラグメントはすべてアクティビティ内で新しいため) アクティビティ内でこれらのフラグメントを操作するのは非常に簡単です。したがって、フラグメントの 1 つがアクティビティを取得できる場合。他のフラグメントを簡単に操作できます。

最も簡単な方法は、フラグメントにアクティビティ属性を追加することです。アクティビティ内で新しいフラグメントが作成されたら、 activity.this をフラグメントに渡します。

しかし、一般的にはアクティビティに XXDelegate などのインターフェースを実装させ、フラグメントのコンストラクターには XXDelagate を持たせます。アクティビティの作成時にこれ (アクティビティ自体) を渡すだけです。

いいねを押す +0
大家讲道理

2 つのフラグメント間を移動するときに、バンドルを使用してパラメータを取得できます。 getArguments().getString("key"); を使用するだけで、キーを自分で定義できます。バンドルを渡すことができる限り、識別子とパラメーターの形式を実装できます。この原則は基本的にアクティビティ
と同じです。例:
Bundlebundle=new Bundle();
bundle.putString( "key", Projsid) ;
fragment.setArguments(bundle); flagment.commit();

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!