回收视图(RecycleView):
CardView:
OnClickListener:
以下是一个简单的示例,展示如何在 RecycleView 中使用 CardView 并设置 OnClickListener:
public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> {
private List<String> mData;
private OnItemClickListener mListener;
public MyAdapter(List<String> data, OnItemClickListener listener) {
this.mData = data;
this.mListener = listener;
}
@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_cardview, parent, false);
return new ViewHolder(view);
}
@Override
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
holder.textView.setText(mData.get(position));
holder.itemView.setOnClickListener(v -> mListener.onItemClick(position));
}
@Override
public int getItemCount() {
return mData.size();
}
public static class ViewHolder extends RecyclerView.ViewHolder {
CardView cardView;
TextView textView;
public ViewHolder(@NonNull View itemView) {
super(itemView);
cardView = itemView.findViewById(R.id.card_view);
textView = itemView.findViewById(R.id.text_view);
}
}
public interface OnItemClickListener {
void onItemClick(int position);
}
}
在 Activity 或 Fragment 中使用 Adapter:
RecyclerView recyclerView = findViewById(R.id.recycler_view);
recyclerView.setLayoutManager(new LinearLayoutManager(this));
List<String> data = Arrays.asList("Item 1", "Item 2", "Item 3"); // 示例数据
MyAdapter adapter = new MyAdapter(data, position -> {
Toast.makeText(this, "Clicked on item " + position, Toast.LENGTH_SHORT).show();
});
recyclerView.setAdapter(adapter);
问题1:点击事件无响应
android:clickable="true"
或 android:focusable="true"
)。问题2:滚动卡顿
通过以上内容,你应该能够理解 RecycleView 和 CardView 的基本用法及其在 Android 开发中的应用。如需更深入的学习或遇到特定问题,请查阅相关文档或社区资源。
没有搜到相关的沙龙
领取专属 10元无门槛券
手把手带您无忧上云