带你了解Android接口回调机制

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去扩展他的点击事件。

你可能感兴趣的:(带你了解Android接口回调机制)