一、老办法,使用监听模式
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 又实现了接口,因此可以调用接口中的方法。