滚动列表视图时如何保持项目的背景颜色

时间:2015-05-06 09:52:06

标签: android android-listview scroll convertview

单击某个项目,更改背景颜色和文本。但是滚动的颜色和文本会丢失,保持原样。我该怎么解决?请帮助我,我是初学者。

这是我的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();
            }

        }

    });

感谢您的帮助!抱歉我的英语词汇。

0 个答案:

没有答案