单击某个项目,更改背景颜色和文本。但是滚动的颜色和文本会丢失,保持原样。我该怎么解决?请帮助我,我是初学者。
这是我的getview:
public View getView(int position, View convertView, ViewGroup parent) {
// En primer lugar "inflamos" una nueva vista, que será la que se
// mostrará en la celda del ListView. Para ello primero creamos el
// inflater, y después inflamos la vista.
LayoutInflater inflater = LayoutInflater.from(context);
View item = inflater.inflate(R.layout.checklist_card, null);
// A partir de la vista, recogeremos los controles que contiene para
// poder manipularlos.
TextView titulo = (TextView) item.findViewById(R.id.titulo);
titulo.setText(items.get(position).getTitulo());
TextView subtitulo = (TextView) item.findViewById(R.id.subtitulo);
subtitulo.setText(items.get(position).getSubtitulos());
TextView leido = (TextView) item.findViewById(R.id.leido);
RelativeLayout lr = (RelativeLayout) item.findViewById(R.id.lrCard);
leido.setText(items.get(position).getLeido());
if (items.get(position).getLeido().equals("Leido")) {
lr.setBackgroundColor(parent.getResources().getColor(R.color.solid_grey));
}else{
lr.setBackgroundColor(parent.getResources().getColor(R.color.solid_white));
}
// Devolvemos la vista para que se muestre en el ListView.
return item;
}
和来自main的这个de onclickitem:
lista = (ListView)findViewById(R.id.lvChecklist);
checklistAdapter adapter;
// Inicializamos el adapter.
adapter = new checklistAdapter(this, items);
// Asignamos el Adapter al ListView, en este punto hacemos que el
// ListView muestre los datos que queremos.
lista.setAdapter(adapter);
lista.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
RelativeLayout lr = (RelativeLayout) view.findViewById(R.id.lrCard);
TextView tv= (TextView) view.findViewById(R.id.leido);
if (tv.getText()=="Leido"){
tv.setText("Pendiente");
lr.setBackgroundColor(getResources().getColor(R.color.solid_white));
}else{
tv.setText("Leido");
lr.setBackgroundColor(getResources().getColor(R.color.solid_grey));
}
Toast.makeText(getApplicationContext(), "Has echo click en: " + position, Toast.LENGTH_SHORT).show();
SQLiteDatabase db1= c1db.getWritableDatabase();
if(db1 != null){
//Recorremos el cursor hasta que no haya más registros
//Generamos los datos
String status= tv.getText().toString();
Integer numero= (position+1);
//Insertamos los datos en la tabla Usuarios
db1.execSQL("UPDATE checklist1 SET status='"+status+"' WHERE id="+numero);
db1.close();
}
}
});
感谢您的帮助!抱歉我的英语词汇。