我正在使用此代码
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的背景颜色为白色。当我点击该项目时,它变为绿色。那很完美。但是当我向下滚动并再次向上滚动时,我拍摄的项目变回白色。我该如何解决这个问题?
答案 0 :(得分:0)
尝试在ListView标记中设置:
android:cacheColorHint="#00000000"
还试试这个:
android:background="color code here"