关于在Android中的回调函数

下面是我遇到的三种回调情况

独立的回调接口

编写一个独立公有的接口文件,其他的类可以继承这个接口。
在Android中,如果在fragment中想要调用这个接口,可以通过((接口名)getActivity()).(方法名)的
方式,调用所在activity中的接口的实现,例如A是activity文件,B是fragment文件

//在B中调用接口,接口名为Actionlistener,方法名为onget();
((Actionlistener)getActivity()).onget();
//在A中需要继承Actionlistener接口,然后重写接口中的onget方法
@Override
public void onget(){
      ...
}
//在重写的方法中实现操作

匿名内部类方式的回调

这种回调一般常见与Android中按钮的点击回调,如果当前回调只出现一次,可以使用匿名内部
类的实现方式

button.setOnClickListener(new View.OnClickListener(){
      ...
})

在类的内部实现接口

一般使用list控件时,在list的adapter文件中使用这种接口。
在adapter文件中先定义一个接口,例如

public interface onTaskClickListener{
    void onClick(int i);
}

然后定义一个方法可以对当前接口的对象进行赋予

//首先定义一个当前接口的对象
private OnTaskClickListener mTaskListener;
//然后定义方法
public void setTaskClickListener(OnTaskClickListener task){
    mTaskListener = task;
}

最后,当需要使用的时候,用类的对象调用setTaskClickListener方法重写onClick方法就可以了
假设接口所在类名为TaskListAdapter.java。

TaskListAdapter taskListAdapter = new TaskListAdapter();
taskListAdapter.setTaskClickListener(new TaskListAdapter.OnTaskClickListener (){
    @Override
    public void onClick(){
        ...
    }
})
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容