美文网首页
为ListView/RecyclerView添加点击事件

为ListView/RecyclerView添加点击事件

作者: fxlddd | 来源:发表于2017-03-15 13:52 被阅读0次

要为ListView添加Item的点击事件,需要在adapter为每个Item设置点击事件,然后暴露给外部adapter调用,给ListView注册监听事件。具体代码:

public class ListViewAdapter extends ArrayAdapter<Book> implements View.OnClickListener{
    private int resourceID;
    private OnListViewOnClickedListener mOnItemClickListener = null;
    public ListViewAdapter(Context context, int resource ,List<Book> objects) {
        super(context, resource, objects);
        resourceID = resource;
    }


    public static interface OnListViewOnClickedListener {
        void onItemClick(View view , String data);
    }


    @Override
    public View getView(int position,View convertView,ViewGroup parent) {
        Book book = getItem(position);
        View view = LayoutInflater.from(getContext()).inflate(resourceID, parent, false);

        TextView title = (TextView) view.findViewById(R.id.list_item_title);
        TextView info = (TextView) view.findViewById(R.id.list_item_info);
        title.setText(book.getTitle());
        info.setText(book.getInfo());
//           给每个item注册点击事件
        view.setOnClickListener(this);
        return view;
    }

    @Override
    public void onClick(View view) {
        if (mOnItemClickListener != null) {
//            这里使用getTag方法获取数据
            mOnItemClickListener.onItemClick(view,(String) view.getTag());
        }
    }

    public void setOnItemClickListener(OnListViewOnClickedListener listener) {
//          获取得到的listener
        this.mOnItemClickListener = listener;
    }
}

相关文章

网友评论

      本文标题:为ListView/RecyclerView添加点击事件

      本文链接:https://www.haomeiwen.com/subject/ipplnttx.html