改变 ListView 一行的颜色

Change color of one line of a ListView

我想制作一个 ListView,其中一些元素的文本颜色为 WHITE,另一些元素的文本颜色为 BLACK

这是我现在的代码:

ArrayAdapter<String> arrayAdapter =
new ArrayAdapter<String>(My_Activity.this, R.layout.row_lay, R.id.textViewList, myarray);
listLead.setAdapter(arrayAdapter);

我可以修改 R.layout.row_lay 的 TextColor,但这会更改我的 ListView 的所有行的颜色。例如,我该如何做一条线一种颜色,另一条线另一种颜色? 有可能实现吗?同一个 ListView 中的不同 TextColor?

如果是怎么办?

您将覆盖 ArrayAdapter

getView 方法
ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(My_Activity.this, R.layout.row_lay, R.id.textViewList, myarray) { 

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
    View v = super.getView(position, convertView, parent);

    //your condition logic
    v.setBackgroundColor(yourColor);

    return v;
    }
};

创建一个扩展 ArrayAdapter 的自定义适配器 class,并像这样覆盖 getView

@Override
public View getView(int position, View convertView, ViewGroup parent){
    View v = super.getView(position, convertView, parent);

    TextView text = (TextView) v.findViewById(R.id.my_textview_id);
    if (position == whiteColoredPosition){
        text.setTextColor(Color.WHITE);
    } else {
        text.setTextColor(Color.BLACK);
    }

    return v;
}

其中 R.id.my_textview_id 是您的 TextView 的 ID,whiteColoredPosition 是包含您要白色的 TextView 的 ListView 中的位置。