Android回调Callback的理解(附demo)

在Android开发中经常会用到回调,我很长一段时间都没搞懂回调。所以在这里记录下我对回调的理解,希望可以对他人有所帮助。

demo在此:http://download.csdn.net/detail/violetjack0808/9432382


我的理解是:回调接口就是去实现一些该类无法实现的功能。或者说挖个坑,等别人来帮忙完成。

下面是实现过程:


1. 效果展示

    这里创建了一个Activity和一个Fragment,要求使用Fragment中的Button来控制Activity中的TextView。效果如下图。

演示效果


2.定义接口、实例化接口

    在Fragment中创建接口,并在fragment中使用set方法实例化接口。只要Activity使用setMyClickListener方法来实现了MyClickListener接口那么这个callback就可以对Activity进行操作了。

private MyClickListener callback;

public void setMyClickListener(MyClickListener callback){
    this.callback = callback;
}

public interface MyClickListener{
    void MyClick(View view);
}

3.使用接口

    在Fragment中使用接口中的方法MyClick。

root.findViewById(R.id.btnFragment).setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        callback.MyClick(view);
    }
});

4.实现接口

    在Activity中,实例化fragment,并使用setMyClickListener方法实现MyClickListener接口。并在接口的MyClick方法中完成Fragment对Activity的操作。

tvShow = (TextView) findViewById(R.id.tvShow);
MainFragment fragment = new MainFragment();
fragment.setMyClickListener(new MainFragment.MyClickListener() {
    @Override
    public void MyClick(View view) {
        tvShow.setText("被点击了" + i +"次");
        i++;
    }
});
getFragmentManager().beginTransaction().replace(R.id.fragmentContainer, fragment).commit();

这里就实现了Fragment中的Button操作Activity中的TextView的功能。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值