Android列表视图 - GetView将更改应用于我不想要的项目

时间:2014-09-28 14:52:23

标签: android listview android-listview

我有一个listview适配器

adapter = new ArrayAdapter(this,android.R.layout.simple_list_item_1,listItems){

@Override
            public View getView(int position, View convertView, ViewGroup parent) {
                TextView tv = (TextView) super.getView(position, convertView, parent);
                if(tv.getText().equals("TEXT1") || tv.getText().equals("TEXT2")) {
                    tv.setBackgroundColor(Color.parseColor("#FF0000"));
                }
                return tv;
            }
        };

我只想要带有文字的项目:TEXT1和TEXT2来更改背景。 没有更多的物品。只有那些。但随着我滚动越来越多的项目的背景发生了变化,那些没有文本TEXT1或TEXT2的项目。

我怎样才能实现这个目标?

谢谢。

1 个答案:

答案 0 :(得分:1)

这是由ListView

的回收机制造成的

修复它你可以"重置"如果后卫是假的背景颜色

if(tv.getText().equals("TEXT1") || tv.getText().equals("TEXT2")) {
    tv.setBackgroundColor(Color.parseColor("#FF0000"));
} else {
    tv.setBackgroundColor(Color.parseColor(OTHERCOLOR));
}