在找关于接口回调的资料时,很多都是与button有关的,于是自己就总结了一下接口的最基本的使用方法,以及回调方法。
最基本的接口分三块:第一个是询问方,即监听者;第二个是回答者,第三个是接口类。
询问方:
ThreadR r=new ThreadR();
new Thread(r).start();
r.setAnInterface(this);
r.setAnInterface(new ContactInterface() {
@Override
public void answer(String answer) {
Log.i("Thread's answer:",answer+"zcdfsfsdf");
}
});
在这里新建了一个对象,并对该对象通过setAnInterface()进行监听以获得数据。
回答者:
public class ThreadR implements Runnable{
public ContactInterface anInterface;
String answer="Thread";
int i=0;
public void setAnInterface(ContactInterface anInterface){
this.anInterface=anInterface;
}
@Override
public void run() {
while (i<5) {
try {
Thread.sleep(1000);
if (i == 3)
anInterface.answer(answer+i);
else {
anInterface.answer(i+"zzdfsdf");
}
i++;
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
在这里,先声明了接口,及其调用方式。通过anInterface.answer()向接口传送数据。
接口类:
public interface ContactInterface {
public void answer(String answer);
}
接口及其抽象方法。
这样我们就完成了一个最基本的接口回调方法!
下面提一下接口回调的三种方式:
第一种便是以上方式。
第二种:
询问方中使用:
r.setAnInterface(this);
并将Activity实现该接口:
implements ContactInterface
续写其方法:@Override public void answer(String answer) { Log.i("implement answer:",answer); }
回答方不变第三种回答者中添加:anInterface = (ContactInterface) activity;
询问方中使用:
并将Activity实现该接口:
implements ContactInterface
续写其方法:该方法在Frgement向Activity传递消息中使用较多。@Override public void answer(String answer) { Log.i("implement answer:",answer); }