setAdapter ViewHolderListener 写一个有十个列表项的点击事件代码
时间: 2024-02-23 21:02:27 浏览: 57
045集-ListView列表项点击事件
好的,这是一个简单的示例代码,实现了一个有十个列表项的点击事件:
```
public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> {
private String[] mData;
public MyAdapter(String[] data) {
mData = data;
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext())
.inflate(R.layout.list_item, parent, false);
return new ViewHolder(view);
}
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
final String item = mData[position];
holder.mTextView.setText(item);
holder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// 处理点击事件
Toast.makeText(v.getContext(), "Clicked item: " + item, Toast.LENGTH_SHORT).show();
}
});
}
@Override
public int getItemCount() {
return mData.length;
}
public static class ViewHolder extends RecyclerView.ViewHolder {
public TextView mTextView;
public ViewHolder(View itemView) {
super(itemView);
mTextView = itemView.findViewById(R.id.text_view);
}
}
}
```
在这个示例代码中,我们创建了一个 `MyAdapter` 类来管理列表项的数据和视图。在 `onBindViewHolder` 方法中,我们设置了每个列表项的文本和点击事件。当用户点击列表项时,我们会弹出一个 Toast 消息显示点击的列表项的文本内容。
注意,在点击事件处理中,我们使用了列表项的文本内容 `item`,而不是列表项的位置 `position`。这是因为在列表项视图被回收并重新使用时,`position` 可能会改变,而文本内容不会改变。
阅读全文