Activityとfragment fragmentとfragment間の通信

1131 ワード

1.activityとfragment間の通信


1.インタフェースコールバック.
2.fragmentのargumentを設定します.
3.getActivity()でactivityの共通メソッドを呼び出します.
4.Intentでactivity付加情報を起動します.

2.fragment間の通信


1.別のfragmentのインスタンスをホストのactivityで取得し、メソッドを呼び出す.
2.インタフェースコールバック
3.ブロードキャストの使用
Intent intent = new Intent("showPro"); intent.putExtra("name", name); LocalBroadcastManager.getInstance(getActivity()).sendBroadcast(intent);
LocalBroadcastManager localBroadcastManager = LocalBroadcastManager.getInstance(getActivity()); IntentFilter intentFilter = new IntentFilter(); intentFilter.addAction("showPro"); BroadcastReceiver br = new BroadcastReceiver() { @Overridepublic void onReceive(Context context, Intent intent) { String key = intent.getStringExtra("name"); }; localBroadcastManager.registerReceiver(br,intentFilter);
 
EventBusの紹介
1.EventBusはAndroid側が最適化したイベントメッセージバスであり、コンポーネント間のコンポーネントとバックグラウンドスレッド間の通信を解決し、Intent Handler Broadcastなどの代わりにFragmentとactivity間でメッセージを伝えることができる.
implementation 'org.greenrobot:eventbus:3.1.1'