英语六级高频词汇,爱欢网,名霸测名
android 两个fragment之间如何传递数据
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) { // ... } }
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
Android studio开发小型对话机器人app(实例代码)
Android通过Java sdk的方式接入OpenCv的方法
Android 通过cmake的方式接入opencv的方法步骤
Android Studio finish()方法的使用与解决app点击“返回”(直接退出)
Android 进度条 ProgressBar的实现代码(隐藏、出现、加载进度)
网友评论