📅  最后修改于: 2023-12-03 14:51:09.811000             🧑  作者: Mango
在 Android 应用程序中,RecyclerView 是一个非常有用的组件,它用于动态添加和删除数据项。但是,有时需要对 RecyclerView 中的某些项目进行颜色更改。这可以通过以下步骤完成:
首先,需要创建 RecyclerView.Adapter 类。在这里,您需要实现三个方法,即 onCreateViewHolder,onBindViewHolder 和 getItemCount。
public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> {
private String[] mDataset;
public static class ViewHolder extends RecyclerView.ViewHolder {
// 将 RecyclerView 中的项目存储在一个视图中
public TextView mTextView;
public ViewHolder(TextView v) {
super(v);
mTextView = v;
}
}
public MyAdapter(String[] myDataset) {
mDataset = myDataset;
}
@Override
public MyAdapter.ViewHolder onCreateViewHolder(ViewGroup parent,
int viewType) {
// 创建新视图
TextView v = (TextView) LayoutInflater.from(parent.getContext())
.inflate(R.layout.my_text_view, parent, false);
ViewHolder vh = new ViewHolder(v);
return vh;
}
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
// 将 RecyclerView 中的项目与数据源中对应的数据项绑定
holder.mTextView.setText(mDataset[position]);
}
@Override
public int getItemCount() {
// 返回数据项的数量
return mDataset.length;
}
}
接下来,您需要更改 RecyclerView.ViewHolder 的颜色。
public MyAdapter(String[] myDataset) {
mDataset = myDataset;
}
public class ViewHolder extends RecyclerView.ViewHolder {
// 将 RecyclerView 中的项目存储在一个视图中
public TextView mTextView;
public ViewHolder(TextView v) {
super(v);
mTextView = v;
}
}
在上面的代码中,ViewHolder 类继承自 RecyclerView.ViewHolder 类。在 ViewHolder 类的构造函数中,我们保存 RecyclerView 中的项目视图。这里是一个文本视图。
接下来,在 onBindViewHolder 方法中,通过 holder.mTextView.setTextColor(Color.RED) 更改 RecyclerView 中的视图颜色。
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
// 将 RecyclerView 中的项目与数据源中对应的数据项绑定
holder.mTextView.setText(mDataset[position]);
holder.mTextView.setTextColor(Color.RED);
}
最后,在 Java 类中添加以下代码来创建 RecyclerView。此代码将使用 MyAdapter 类和第二步中更改颜色的 ViewHolder。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
RecyclerView recyclerView = (RecyclerView) findViewById(R.id.my_recycler_view);
recyclerView.setHasFixedSize(true);
LinearLayoutManager layoutManager = new LinearLayoutManager(this);
recyclerView.setLayoutManager(layoutManager);
String[] myDataset = {"Item 1", "Item 2", "Item 3"};
MyAdapter mAdapter = new MyAdapter(myDataset);
recyclerView.setAdapter(mAdapter);
}
以上就是在 RecyclerView 中更改项目颜色的完整步骤。希望这可以帮助您理解如何操作 RecyclerView 中的项目颜色。