https://blog.csdn.net/nnmmbb/article/details/50931064html
转 两个Fragment之间怎样通讯?this
版权声明:本文为博主原创文章,未经博主容许不得转载。 https://blog.csdn.net/nnmmbb/article/details/50931064.net
首先明确一点:两个Fragment之间不能直接通讯,只能经过它们所寄生的Activity做为桥梁进行通讯。code
场景假设:咱们假设A这个Activity里面有F1,F2两个Fragment。F1里面是新闻列表, F2里面是新闻详情,点击F1的某一条,要让F2相应的发生改变。htm
那具体怎么实现呢?分两步:blog
1. 在F1里面定义接口,A里面实现接口。经过回调实现F1与其父亲A的通讯。接口
2. 在A接口回调方法里与F2通讯,将参数传给F2。get
实现代码:it
F1的关键代码:io
public interface OnArticleClickedListener { public void onArticleSelected(int position); } setOnArticleClickedListener(OnArticleClickedListener listener){ this.listener = listener; } public void onListItemClick(ListView l, View v, int position, long id) { this.listener.onArticleSelected(position); }
A的关键代码:
f1.setOnArticleClickedListener(new F1.OnArticleClickedListener(){
onArticleSelected(int position){
//调用f2的方法,与进行通讯
f2.showArticleDetail(position);
}
});