Mang đến cho bạn hành trang là Kiến thức và Kinh nghiệm

Lựa chọn chủ đề bạn quan tâm

Cùng nhau thảo luận về các vấn đề

Hãy theo dõi chúng tôi nếu bạn thấy bổ ích

  1. Hỏi đáp IT
  2. Hỏi nhanh

Tại sao RecycleView không có hàm sự kiện onItemClickListener() ?

267 Lượt xem 5 Bình luận 0 Lượt báo xấu
Mình mới làm về RecycleView.
Mình muốn sử dụng sự kiện click vào 1 item tương tự như với listView nhưng không tìm thấy hàm lắng nghe của recycleView ?

Mọi người ai làm về android giúp mình với ?
 
Câu trả lời

- Bạn đã sẵn sàng thảo luận về chủ đề này. Hãy bấm "Viết bình luận", bạn có thể lựa chọn sử dụng tài khoản Facebook hoặc Google++

- Vì sự phát triển của cộng đồng CNTT/CNPM tại Việt Nam!

Unknown user
No responses yet

Trong recycleView sẽ không hỗ trợ hàm sự kiện item như trong listView đâu bạn ơi.
Bạn có thể dùng cách khác nhé
2 Lượt thích

Vậy thì mình phải làm như thế nào để gán sự kiện click cho item vậy bạn !
2 Lượt thích

public class ContentAdapter extends RecyclerView.Adapter<ContentAdapter.ViewHolder> {

    public interface OnItemClickListener {
        void onItemClick(ContentItem item);
    }

    private final List<ContentItem> items;
    private final OnItemClickListener listener;

    public ContentAdapter(List<ContentItem> items, OnItemClickListener listener) {
        this.items = items;
        this.listener = listener;
    }

    @Override public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.view_item, parent, false);
        return new ViewHolder(v);
    }

    @Override public void onBindViewHolder(ViewHolder holder, int position) {
        holder.bind(items.get(position), listener);
    }

    @Override public int getItemCount() {
        return items.size();
    }

    static class ViewHolder extends RecyclerView.ViewHolder {

        private TextView name;
        private ImageView image;

        public ViewHolder(View itemView) {
            super(itemView);
            name = (TextView) itemView.findViewById(R.id.name);
            image = (ImageView) itemView.findViewById(R.id.image);
        }

        public void bind(final ContentItem item, final OnItemClickListener listener) {
            name.setText(item.name);
            Picasso.with(itemView.getContext()).load(item.imageUrl).into(image);
            itemView.setOnClickListener(new View.OnClickListener() {
                @Override public void onClick(View v) {
                    listener.onItemClick(item);
                }
            });
        }
    }
}
Như bạn thấy trong hàm bind mình có gọi itemView.setOnClickListenner()
Thì đó là cash gán sự kiện cho 1 item.
Ngoiaf ra bạn có thể gán sự kiện cho từng view trong item cũng đc nhé !
1 Lượt thích

ok bạn ơi,mình hiểu rồi,thank nhé :))
1 Lượt thích

RecyclerView không có sự kiện OnclickLister cho 1 item trong list bạn nhé, bạn phải tạo sự kiện onlick cho nó , mình hay tạo interface có hàm truyền thám số cho nó sau đó bạn cho Activity kế thừa Interface đó . Đồng thời khởi tạo interface trong Adapter của RecyclerView . Chúc bạn thành công
0 Lượt thích

Từ khóa tìm kiếm

Câu trả lời mới nhất

Tin tuyển dụng