更改单个适配器中各种 ListView 项目的颜色

Change color of various ListView items in a single Adapter

是否可以在一个 ArrayAdapter

中为不同的 ListView 项目设置不同的背景颜色

例如:

for(int i = 0; i < ArrayAdapter.getCount(); i++){

    Color c;

    switch(i){
         case 0: c = Color.RED; break;
         case 1: c = Color.GREEN; break;
         default: c = Color.BLUE;
    }

    ListView lv = ArrayAdapter.getView(i); //I know this method does not exist  
    lv.setBackgroundColor(c);
}

我不知道如何管理这个,抱歉我是 android 初学者...

在您的适配器的 getView 中,添加此代码:

public View getView (int position, View convertView, ViewGroup parent){
    View view = convertView;
    if(view == null){
        // Inflate row view here
    }

    Color c;
     switch(position){
         case 0: c = Color.RED; break;
         case 1: c = Color.GREEN; break;
         default: c = Color.BLUE;
    }

    view.setBackgroundColor(c);
}

覆盖 ArrayAdapter 中的 getView 方法:

public class MyAdapter extends ArrayAdapter<String>{

    public MyAdapter(Context context, int resource) {
        super(context, resource);
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        View v= super.getView(position, convertView, parent);
        v.setBackgroundColor(Color.RED);
        return v;
    }
}