Androidの2つのFragment間でデータを転送するインスタンスの詳細
2065 ワード
Androidの2つのFragment間でデータをどのように伝達するか
FragmentAはFragmentBを起動し、いくつかの選択操作をした後、FragmentAに戻り、FragmentBで選択したデータを返す必要があります.何か方法がありますか.
Fragment間で直接通信することはできません.Activityで具体的な手順を完了する必要があります.
1.FragmentAで通信インタフェースを定義し、このインタフェースを介してActivityにデータを送信する.
2.Activityでインタフェースを実装し、FragmentBにデータを渡す.
3.FragmentBは、データを受信して処理する.
読書に感謝して、みんなを助けることができることを望んで、みんなの当駅に対する支持に感謝します!
FragmentAはFragmentBを起動し、いくつかの選択操作をした後、FragmentAに戻り、FragmentBで選択したデータを返す必要があります.何か方法がありますか.
Fragment間で直接通信することはできません.Activityで具体的な手順を完了する必要があります.
1.FragmentAで通信インタフェースを定義し、このインタフェースを介してActivityにデータを送信する.
public class FragmentA extends Fragment {
private onButtonPressListener mListener;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_linmo_select_beitie, container, false);
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView> parent, View view, int position, long id) {
mListener.onOKButtonPressed(selectedBeitie);
}
});
return view;
}
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
try {
mListener = (onButtonPressListener) activity;
} catch (ClassCastException e) {
throw new ClassCastException(activity.toString() + " must implement onOkButtonPressed");
}
}
public interface onButtonPressListener {
void onOKButtonPressed(LinmoBeitieItem item);
}
}
2.Activityでインタフェースを実装し、FragmentBにデータを渡す.
public class MainActivity extends Activity implements FragmentA.onButtonPressListener {
@Override
public void onOKButtonPressed(LinmoBeitieItem item) {
FragmentB fragmentB = (FragmentB)getFragmentManager().findFragmentById(R.id.container);
fragmentB.onBeitieSelected(item);
}
}
3.FragmentBは、データを受信して処理する.
public class FragmentA extends Fragment {
public void onBeitieSelected(LinmoBeitieItem item) {
// ...
}
}
読書に感謝して、みんなを助けることができることを望んで、みんなの当駅に対する支持に感謝します!