¿Cómo leer más de una columna en la base de datos con el cursor y completar una lista?

Tengo una mesa llamada tbl_homework. Hay 3 columnas llamadas "_id", "hw" y "hwdate". Ahora me gusta leer "hw" Y "hwdate". Así que me gusta en la misma línea en esta vista de lista. Debo decir que está funcionando sin fallas ni errores. Simplemente no muestra la fecha ... La siguiente imagen te dirá lo que quiero decir:

enter image description here

Aquí están los fragmentos de código para decirle cómo probé esto:

    private Button.OnClickListener add_hw = new Button.OnClickListener(){
    public void onClick(View arg0) {
        mDbHelper.open_database_rw();
        String txt_insert_hw = insert_hw.getText().toString(); 

        if(txt_insert_hw.equals("")){
            doMessage("Keine Eingabe!");
        }else{
            String date_picker_message= date_pick.getDayOfMonth() + "/" + (date_pick.getMonth()+1) + "/" + date_pick.getYear();
            final String INSERT_HW = "INSERT INTO tbl_homework ('hw', 'hwdate') VALUES ('"+txt_insert_hw+"', '"+date_picker_message+"')";
            db.execSQL(INSERT_HW);
            insert_hw.setText("");
            fillData();
        }
    }
};


    private void fillData() {
    // Get all of the notes from the database and create the item list

    Cursor c = mDbHelper.fetchAllNotes();

    startManagingCursor(c);

    String[] from = new String[] { dbHelper.KEY_TITLE, dbHelper.KEY_DATE};
    int[] to = new int[] {R.id.txt_notes_row};

    // Now create an array adapter and set it to display using our row
    SimpleCursorAdapter notes = new SimpleCursorAdapter(this, R.layout.notes_row, c, from, to);
        setListAdapter(notes);
    }

Y en mDbHelper:

    public Cursor fetchAllNotes() {
    return db.query(DATABASE_TABLE, new String[] {KEY_ROWID, KEY_TITLE, KEY_DATE}, null, null, null, null, null);
}

Solución de este problema: (Recibido del jurado)

    String[] from = new String[] { dbHelper.KEY_TITLE, dbHelper.KEY_DATE};
    int[] to = new int[] {R.id.txt_notes_row, R.id.txt_notes_row2};

Tuve que agregar un nuevo TextView. dbHelper.KEY_TITLE Y dbHelper.KEY_DATE no pueden ser manejados por un TextView. Así que tuve que agregar un nuevo TextView para manejar la segunda parte de mi String "desde".

preguntado el 01 de febrero de 12 a las 14:02

1 Respuestas

Creo que el problema es que intentas hacer coincidir dos columnas (desde) con un solo contenedor (hasta) aquí:

String[] from = new String[] { dbHelper.KEY_TITLE, dbHelper.KEY_DATE};
int[] to = new int[] {R.id.txt_notes_row};

Debe especificar dos campos en la fila de la lista donde almacena sus valores. Es decir, su R.id.txt_notes_row debe contener dos widgets (por ejemplo, R.id.txtview1 y R.id.txtview2) donde puede almacenar sus valores de db.

Respondido 01 Feb 12, 19:02

usted tenía razón. Gracias. dbHelper.KEY_TITLE => R.id.txt.notes_row dbHelper.KEY_DATE => R.id.txt.notes_row2 - Marco Seiz

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.