Fragment与Activity通信的两种方法
2016-05-03 23:34
323 查看
1.在fragment声明一个接口,实现回调。
2.
public class FragmentOne extends Fragment{ private static final String TAG = "FragmentOne"; public interface FOneBtnClickListener{ void onOneBtnClick(); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { Button toTwoFragment = (Button) view.findViewById(R.id.button); toTwoFragment.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { //判断Activity是否实现了FOneBtnClickListener if(getActivity() instanceof FOneBtnClickListener){ ((FOneBtnClickListener)getActivity()).onOneBtnClick(); } } }); return view; }
2.
public class FragmentTwo extends Fragment{ //定义内部接口变量 private FTwoOnBtnClickListener fTwoOnBtnClickListener; public interface FTwoOnBtnClickListener{ void onTwoBtnClick(); } //为该变量赋值 public void setOnBtnClickListener(FTwoOnBtnClickListener fTwoOnBtnClickListener){ this.fTwoOnBtnClickListener = fTwoOnBtnClickListener; } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { Button toThreeFragment = (Button) view.findViewById(R.id.button); toThreeFragment.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { //该变量不为空,则说明Activity实现了该接口 if(fTwoOnBtnClickListener != null){ fTwoOnBtnClickListener.onTwoBtnClick(); } } }); return view; } }
相关文章推荐
- django的model创建对应表
- 数据结构之链表
- CSS
- mac下安装mysql,密码重置
- Android的四种启动模式
- Reverse Linked List+链表复习
- 使用AsyncHttpClient获取Session 问题汇总
- JDK源码分析之集合04HashMap
- Git工具的使用
- MAC 钥匙串访问
- PHP引用&的使用
- JDBC技术总结(一)
- 设计模式之工厂设计模式简单实践
- linux命令行中显示redis的中文编码
- android第一行代码-6.自定义控件的实现
- Collection集合总结
- 我的GitHub体验
- 将启动命令中包含某个字符串的进行杀死
- [android] 切换按钮-自定义控件-拖动效果
- 状态模式-c++实现