今天在学习RecyclerView使用时 发现RecyclerView没有click方法。事列里是通过接口的回调来实现的 当时看的有点绕 事后写一个小例子来清晰下思路。我的理解就是 传递一个实例化接口的引用对象,通过该引用对象来达到回调方法。
以上是个人理解 不知道是不是完全对。下面例子就是模拟了今天在学习RecycleView时碰到的方法回调
public class Test {
//定义一个内部接口
public interface Play{
void Swing(String mes);
void Sing(String mes);
}
//设置内部接口变量 用于接收实例化的接口对象
private static Play p;
//接口对象的SET方法
public void setPlay(Play p){
this.p=p;
}
public static void main(String[] args) {
Student student=new Student();
if(p!=null){
<span style="white-space:pre"> </span>//判断非空 然后进行方法调用 达到方法回调的效果
p.Sing("zhangsan");
p.Swing("lisi");
}
}
}
public class Student {
public Student(){
Test test=new Test();
<span style="white-space:pre"> </span>//通过set方法将实例化的接口对象赋值到接口类中
test.setPlay(new t());
}
//内部类 实现接口
class t implements Test.Play{
@Override
public void Swing(String mes) {
System.out.println("Swing "+mes);
}
@Override
public void Sing(String mes) {
System.out.println("Sing "+mes);
}
}
}