android fragment传递数据,Android 两个Fragment之间传递数据实例详解
Android 兩個(gè)Fragment之間如何傳遞數(shù)據(jù)
FragmentA啟動(dòng)FragmentB,做一些選擇操作后,返回FragmentA,需要把FragmentB里面選擇的數(shù)據(jù)傳回來。有什么辦法?
Fragment之間不能直接通信,必須通過Activity來完成,具體步驟。
1. 在FragmentA中定義通信接口,通過該接口向Activity發(fā)送數(shù)據(jù)。
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中實(shí)現(xiàn)該接口,并通過該接口向FragmentB傳遞數(shù)據(jù)。
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接收到數(shù)據(jù)并處理。
public class FragmentA extends Fragment {
public void onBeitieSelected(LinmoBeitieItem item) {
// ...
}
}
感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!
總結(jié)
如果覺得編程之家網(wǎng)站內(nèi)容還不錯(cuò),歡迎將編程之家網(wǎng)站推薦給程序員好友。
本圖文內(nèi)容來源于網(wǎng)友網(wǎng)絡(luò)收集整理提供,作為學(xué)習(xí)參考使用,版權(quán)屬于原作者。
小編個(gè)人微信號(hào) jb51ccc
喜歡與人分享編程技術(shù)與工作經(jīng)驗(yàn),歡迎加入編程之家官方交流群!
總結(jié)
以上是生活随笔為你收集整理的android fragment传递数据,Android 两个Fragment之间传递数据实例详解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: android 看AP 国家代码,And
- 下一篇: 华为鸿蒙电脑操作系统测试版,官方公布教程