列表视图的背景颜色没有变化。我如何解决它?

时间:2016-02-19 13:37:52

标签: android

我正在使用此代码

ListView lv = getListView();
    lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            TextView idno = (TextView) view.findViewById(R.id.idno);
            TextView fullname = (TextView) view.findViewById(R.id.fullname);
            TextView remark = (TextView) view.findViewById(R.id.remark);
            new DisplayStudent().execute("Update", idno.getText().toString());
            if(remark.getText().toString().equals("absent")) {
                if(isStudentLate) {
                    view.setBackgroundColor(ContextCompat.getColor(getApplicationContext(), R.color.colorLate));
                    fullname.setTextColor(Color.WHITE);
                    remark.setText("late");
                }
                else {
                    view.setBackgroundColor(ContextCompat.getColor(getApplicationContext(), R.color.colorPresent));
                    fullname.setTextColor(Color.WHITE);
                    remark.setText("present");
                }
            }
            else if(remark.getText().toString().equals("present") || remark.getText().toString().equals("late")) {
                view.setBackgroundColor(Color.WHITE);
                fullname.setTextColor(Color.BLACK);
                remark.setText("absent");
            }
        }
    });
    ((BaseAdapter)getListView().getAdapter()).notifyDataSetChanged();

每次点击一个项目时,我点击的项目的背景颜色应该会改变。为什么不改变?我尝试删除它确实改变的((BaseAdapter)getListView().getAdapter()).notifyDataSetChanged();,但当我向下滚动并再次向上滚动时,它会恢复原来的背景颜色。

例如。 One Item的背景颜色为白色。当我点击该项目时,它变为绿色。那很完美。但是当我向下滚动并再次向上滚动时,我拍摄的项目变回白色。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

尝试在ListView标记中设置:

android:cacheColorHint="#00000000"

还试试这个:

android:background="color code here"