首页 > 其他 > 详细

回调、接口的使用

时间:2019-04-12 20:42:45      阅读:140      评论:0      收藏:0      [点我收藏+]

之前提到过,在Recycleview中若想要调用所属Activity中的方法,可以在Recycleview的Adapter构造时传入Activity对象并暂存下来,就可以对该对象进行操作,调用Activity中的方法;

例如下面,FragmentStatePagerAdapter的构造函数中,对MainActivity对象进行赋值。

    private List<Fragment> fragmentlist;private MainActivity context;

    public MainFragmentStatePagerAdapter(MainActivity context, FragmentManager fm, List<Fragment> fragmentlist)
    {
        super(fm);
        this.context = context;
        this.fragmentlist = fragmentlist;
    }

但是这种方法不太规范,可考虑使用接口进行回调的方法;

例如,在一个Fragment中有个按钮,点击该按钮需要调用Activity中的函数;

首先,在Fragment中定义一个接口,在此不需要实现:

    public interface OnButtonClickListener{
        //当“哼歌作曲”被点击时
        void click_button_sing();
    }

然后在Fragment中声明一个该接口,并实现其赋值函数:

private OnButtonClickListener mOnButtonClickListener;
public void setOnButtonClickListener(OnButtonClickListener mOnButtonClickListener){
    this.mOnButtonClickListener = mOnButtonClickListener;
}

接着对Button对象编写其点击监听器,被点击时调用mOnButtonClickListener对象中的函数:

button_aicompose_sing.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
mOnButtonClickListener.click_button_sing();
}
});

Fragment部分的代码就完成了,接下来在Activity中进行编写,创建一个该Fragment对象,并编写其监听器,监听器中就可以调用本Activity中的函数了:

AIComposeFragment aiComposeFragment = new AIComposeFragment();
aiComposeFragment.setOnButtonClickListener(new AIComposeFragment.OnButtonClickListener() {
    @Override
    public void click_button_sing() {
        GotoRecorderActivity();
    }
});

 

回调、接口的使用

原文:https://www.cnblogs.com/zhaozilongcjiajia/p/10698377.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!