3

我需要根据字符串值(JSON)动态更改列表视图的背景颜色。如果 TAG_SEVERITY 字段中的文本是“关键”,我想更改背景颜色。以下是我尝试过的方法,但是通过代码,无论文本如何,都会将严重性字段更改为蓝色。如果更改行颜色而不是字段背景颜色会更好。我对此很陌生。

    SimpleAdapter adapter = new SimpleAdapter(this, mCommentList,
            R.layout.single_post, new String[] {TAG_SEVERITY, TAG_TITLE }, new int[] { R.id.severity, R.id.rTitle});adapter.setViewBinder(new SimpleAdapter.ViewBinder() {

        @Override
        public boolean setViewValue(View view, Object data,
                String textRepresentation) {
            int v=view.getId();
            if(v==R.id.severity && String.valueOf(data.toString()).contentEquals("Critical")){
                ((View) view.getParent()).setBackgroundColor(Color.BLUE);
            }
            TextView TV=(TextView) view;
            TV.setText(data.toString());
            return true;
        }
    });

    setListAdapter(adapter);
4

1 回答 1

1

我认为通过为 view.getParent() 设置背景,您正在为整个 ListView 设置背景。您是否尝试过仅使用 view.setBackground()?

另一种选择是创建自己的适配器类,并根据严重性在 getView() 方法中设置视图的背景颜色。

于 2013-07-26T19:25:18.447 回答