📜  在 recyclerview 中更改颜色 - Java (1)

📅  最后修改于: 2023-12-03 14:51:09.811000             🧑  作者: Mango

在 RecyclerView 中更改颜色 - Java

在 Android 应用程序中,RecyclerView 是一个非常有用的组件,它用于动态添加和删除数据项。但是,有时需要对 RecyclerView 中的某些项目进行颜色更改。这可以通过以下步骤完成:

步骤1:创建 RecyclerView.Adapter

首先,需要创建 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;
    }
}
步骤2:更改 RecyclerView.ViewHolder 的颜色

接下来,您需要更改 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);
}
步骤3:添加项目到 RecyclerView 中

最后,在 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 中的项目颜色。