美文网首页
为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