Fragment 与 Activity 通信
一、老办法,使用监听模式 1.定义监听接口: public interface TabListener { void setTab(JMPTypeEnum jmpTypeEnum); } 2.Activity 实现监听接口 public class MainActivity implements TabListener { @Override public void setTab(JMPTypeEnum jmpTypeEnum) { if (jmpTypeEnum==JMPTypeEnum.JMP_PANDA_LIVE) { mRbLovePanda.setChecked(true); } } } 3.在 Fragment 中直接使用 public class HomeFragment{ private TabListener mTabListener; @Override public void onAttach(Context context) { super.onAttach(context); mTabListener = (TabListener) context; // 初始监听 } // 在需要通知 Activity 的地方调用 mTabListener.setTab(JMPTypeEnum.JMP_PANDA_LIVE); } 4.在 Fragment 适配器类中使用 public class HomeAdapter extends MyBaseAdapter { private TabListener mTabListener; public HomeAdapter(Context context, ArrayList<AdapterData> datas) { this.mContext = context; this.mDatas = datas; this.mTabListener = (TabListener) mContext; // 初始监听 } // 在需要通知 Activity 的地方调用 mTabListener.setTab(JMPTypeEnum.JMP_PANDA_LIVE); } 总结:其实 Context 就是 Activity 的父类,因此可以转换成子 Activity,子 Activity 又实现了接口,因此可以调用接口中的方法。