Android fragment与activity之间的接口回调那些事儿

    前几天自己做了个小应用需要用到在fragment中监听到activity中按钮的点击时间,并且activity向fragment传值,百度了很多但是一直没找到具体的实现方法没有找到可以在fragment中监听到activity中的点击事件,自己研究了一下,发现还是用接口回调实现,既可以传值也可以传递监听事件,好了废话不多说,接下来简单实现一下.

    首次先实现的是fragment监听activity按钮的点击时间。

    先在activity定义回调接口参数可以是(view v),也可以是其他类型的参数,这些参数通过回调从activity传递到fragment.

  //声明回调接口
    private MyOnClick myPersonOnClick,myCompanyOnClick;


    //定义回调接口
    public interface MyOnClick{
        void myListener(Map<String,Double> what);
    }

定义之后声明一个接口类型的变量,然后在需要调用的地方,例如onClick方法中去调用它写法如下

  //传递点击事件 以及activity向fragment传值
                    if(null!=myPersonOnClick){
                        myPersonOnClick.myListener(personMap);
                    }
                    if(null!=myCompanyOnClick){
                        myCompanyOnClick.myListener(companyMap);
                    }

定义set方法将接口从fragment中传递过来

    public void setCompanyOnclick(MyOnClick myOnClick){this.myCompanyOnClick=myOnClick;}
    public void setMyPersonOnClick(MyOnClick myOnClick1){
        this.myPersonOnClick=myOnClick1;
    }

然后在fragment实现接口的相关方法,并在fragment的声明周期中去注册接口

 //声明及实现接口的方法
    private MainActivity.MyOnClick myOnClick = new MainActivity.MyOnClick() {
        @Override
        public void myListener(Map<String,Double> what) {
            setData(what);
        }
    };

覆写onAttach方法注册接口方法


    @Override
    public void onAttach(Context context) {
        super.onAttach(context);
//注册接口
        ((MainActivity) context).setMyPersonOnClick(myOnClick);
    }
这就是接口回调的全过程我这里实现的是传值问题,其他的传递点击事件,onTouch事件都类似只不过是传递参数发生变化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值