0

我将创建一个动态ListView的,使用 json 显示来自服务器的数据。我想setBakgroundColor依赖数据中的某个对象。例如:json是

{"Order":[{"id":1,
"situation":"notchecked",
"status":"Processing"},
{"id":2,
"situation":"checked",
"status":"Processing"}]}

如果情况 == 未选中

convertView.setBackgroundColor(Color.GREEN);

这是我在 BaseAdapter 中的视图

@Override
    public View getView(int position, View convertView, ViewGroup parent) {
        // TODO Auto-generated method stub

        if (convertView == null) {
            convertView = inflater.inflate(R.layout.complete_order_row, parent,
                    false);
                if ()......{

                convertView.setBackgroundColor(Color.GREEN);
                 }
        }


        TextView situation = (TextView) convertView
                .findViewById(R.id.situation);
        situation.setText(catList.get(position).getSituation());
         TextView status= (TextView) convertView
                .findViewById(R.id.status);
        status.setText(catList.get(position).getStatus());
         TextView id= (TextView) convertView
                .findViewById(R.id.id);
        id.setText(catList.get(position).getId));

        return convertView;

    }
4

1 回答 1

1

你几乎做对了,但是你每次都需要设置它,无论是在 convertView 被回收还是不被回收的时候:

    if (convertView == null) {
        convertView = inflater.inflate(R.layout.complete_order_row, parent,
                false);
       //...
    }
    TextView situation = (TextView) convertView
            .findViewById(R.id.situation);
    situation.setText(catList.get(position).getSituation());
    if (catList.get(position).getSituation().equals("notchecked")) {
       convertView.setBackgroundColor(Color.GREEN);
    } else {
       convertView.setBackgroundColor(Color.BLUE);
    }
于 2016-02-06T18:47:17.557 回答