Android中的回调
Posted 劲火星空
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android中的回调相关的知识,希望对你有一定的参考价值。
标准
如下是我们平常使用的回调
btn_rigister.setOnClickListener(new View.OnClickListener()
@Override
public void onClick(View view)
// TODO log in
);
概念
什么是回调?
实现了抽象类/接口 的实例实现了父类的提供的抽象方法,后,将该方法交还给父类来处理
比如view具有被点击的通性,但是每个点击又会产生不一样的事件处理一样,因此android对外暴露一个接口有个onClick方法,你需
要处理啥你就写啥,view只会调用这个方法,具体怎么处理你已经自己为不同的点击事件做了处理了。
栗子
如下是一个回调的栗子,接口会得到一个实例,谁调用就重写它
public class Employee
/*
* 定义回调接口的成员变量
*/
private Callback mCallback;
/*
* 声明回调接口
*/
public interface Callback
public abstract void work();
/*
* 设置回调接口对象成员变量
*/
public void setCallback(Callback callback)
this.mCallback = callback;
/*
* 调用回调接口对象中的方法
*/
public void doWork()
mCallback.work();
使用的时候这样使用,就说实现接口的方法
public class Boss
private Employee employee;
/*
* 为Employee设置回调函数, 在这里定义具体的回调方法
*/
public void setCallback()
employee.setCallback(new Employee.Callback()
@Override
public void work()
System.out.println("work");
);
这里我们调用对象的doWork方法就可以调用实现类中的System.out.println("work")了
RecycleView中回调
创建接口获得实例
/**
* 点击RecyclerView某条的监听
*/
public interface OnItemClickListener
/**
* 当RecyclerView某个被点击的时候回调
* @param view 点击item的视图
* @param data 点击得到的数据
*/
public void onItemClick(View view,String data);
private OnItemClickListener onItemClickListener;
/**
* 设置RecyclerView某个的监听
* @param onItemClickListener
*/
public void setOnItemClickListener(OnItemClickListener onItemClickListener)
this.onItemClickListener = onItemClickListener;
实现接口
//设置点击某条的监听
adapter.setOnItemClickListener(new MyRecyclerViewAdapter.OnItemClickListener()
@Override
public void onItemClick(View view, String data)
Toast.makeText(RecyclerViewActivity.this, "data=="+data, Toast.LENGTH_SHORT).show();
);
调用的时候直接拿接口的实例调用就可以了
iv_icon.setOnClickListener(new View.OnClickListener()
@Override
public void onClick(View v)
Toast.makeText(context, "我是图片=="+getLayoutPosition(), Toast.LENGTH_SHORT).show();
);
这里还传递了参数
以上是关于Android中的回调的主要内容,如果未能解决你的问题,请参考以下文章