Android接口回调机制
接口回调是在Android中运用广泛的一种机制,你一定会眼熟它,接下来,我们从两个方面来了解接口回调
- Android源码
- 自行动手实际运用
1.从setOnclickListener()看接口回调
大家都会熟悉这样的写法button.setOnClickListener(new onClickListener()...
跟进去看看源码:其实就是为这个View设置了一个点击事件回调
public void setOnClickListener(@Nullable OnClickListener l) {
if (!isClickable()) {
setClickable(true);
}
getListenerInfo().mOnClickListener = l;
}
2.为RecyclerView的ItemView设置事件监听
-
这是自行定义的接口:
public interface RecyclerViewItemClick
{
public void onRecyclerViewItemClick(View view, int position);
}
-
在RecyclerView的Adapter里面有一个回调接口的对象,并为它设置Set方法
/**
* ItemView点击事件
*/
private RecyclerViewItemClick mOnRecyclerViewItemClick;
/**
* 设置ItemView点击事件
*
* @param onRecyclerViewItemClick
*/
public void setOnRecyclerViewItemClick(RecyclerViewItemClick onRecyclerViewItemClick)
{
mOnRecyclerViewItemClick = onRecyclerViewItemClick;
}
-
然后在onBindViewHolder方法里面添加这样一句代码:
holder.itemView.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
mOnRecyclerViewItemClick.onRecyclerViewItemClick(v, position);
}
});
-
最后在业务逻辑中就可以这样写了
adapter.setOnRecyclerViewItemClick(new RecyclerViewItemClick()
{
@Override
public void onRecyclerViewItemClick(View view, int position)
{
//在这里对点击事件进行处理
}
});
-
结束语
接口回调机制比较简单,可以花点时间自己理解一下。在这里只是简单的为RecyclerView添加点击事件,只是为了理解接口回调机制,另外也可以使用RecyclerView.onItemTouchListener
去扩展他的点击事件。