我有一个600项的数组 . 我已将所有数组项放在RecyclerView中,并且它们滚动得很好 . 但是,当我尝试访问onClick监听器时,它没有被调用 . 我还尝试在我的ViewHolder类中实现View.OnClickListener和Override onClick,但它不起作用 .
当用户单击视图中的一个项目时,我想要对列表中单击的项目的Toast数据进行Toast
Adapter code is
public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> {
public static class ViewHolder extends RecyclerView.ViewHolder
implements View.OnClickListener {
private String mItem;
private TextView mTextView;
public ViewHolder(View view) {
super(view);
view.setOnClickListener(this);
mTextView = (TextView) view.findViewById(R.id.item_title);
}
public void setItem(String item) {
mItem = item;
mTextView.setText(item);
}
@Override
public void onClick(View view) {
Log.d("TAG", "onClick " + getPosition() + " " + mItem);
}
}
private String[] mDataset;
public MyAdapter(String[] dataset) {
mDataset = dataset;
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View v = LayoutInflater.from(parent.getContext())
.inflate(R.layout.item, parent, false);
ViewHolder vh = new ViewHolder(v);
return vh;
}
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
holder.setItem(mDataset[position]);
}
@Override
public int getItemCount() {
return mDataset.length;
}
}
3 回答
您可以通过这种方式实现RecyclerView适配器,以支持onItemCLick和OnItemLongClick
在你的活动中以这种方式实现它