zoukankan      html  css  js  c++  java
  • 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 又实现了接口,因此可以调用接口中的方法。
  • 相关阅读:
    网络English word
    Top instruction significance and use sar command
    远程传输+用yum安装文件+make编译安装软件
    windows主机向虚拟机Linux传输过程的错误重重艰苦历程
    pair结构体数组
    set容器
    scanf多组样例输入
    贪心硬币
    补一下蛇形矩阵
    如何在eclipse运行asn
  • 原文地址:https://www.cnblogs.com/zx-blog/p/11836400.html
Copyright © 2011-2022 走看看