下面是我遇到的三种回调情况
独立的回调接口
编写一个独立公有的接口文件,其他的类可以继承这个接口。
在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(){
...
}
})