Sono abbastanza nuovo per lo sviluppo di Android (iniziato 2 giorni fa) e ho già effettuato una serie di esercitazioni. Sto creando un'app di prova dall'esercizio NotePad (Link to tutorial) nell'SDK di Android e, come parte dell'elenco di note, voglio visualizzare un'immagine diversa a seconda del contenuto di un campo di database che ho chiamato "notetype". Mi piacerebbe che questa immagine appaia nella visualizzazione Elenco prima di ogni voce del blocco note.Android: modifica di uno src ImageView in base ai dati di campo del database
Il codice nel mio file .java è:
private void fillData() {
Cursor notesCursor = mDbHelper.fetchAllNotes();
notesCursor = mDbHelper.fetchAllNotes();
startManagingCursor(notesCursor);
String[] from = new String[]{NotesDbAdapter.KEY_NOTENAME, NotesDbAdapter.KEY_NOTETYPE};
int[] to = new int[]{R.id.note_name, R.id.note_type};
// Now create a simple cursor adapter and set it to display
SimpleCursorAdapter notes =
new SimpleCursorAdapter(this, R.layout.notes_row, notesCursor, from, to);
setListAdapter(notes);
}
E il mio file di layout xml (notes_row.xml) si presenta così:
<ImageView android:id="@+id/note_type"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:src="@drawable/default_note"/>
<TextView android:id="@+id/note_name"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
ho davvero ho idea di come I' andare a prendere il giusto drawable a seconda del tipo di nota che è stata selezionata. Al momento ho la possibilità di selezionare il tipo da uno Spinner, quindi ciò che viene memorizzato nel database è un numero intero. Ho creato alcune immagini che corrispondono a questi numeri interi, ma non sembra prendere decisioni.
Qualsiasi aiuto sarebbe apprezzato. Se avete bisogno di maggiori informazioni, per favore fatemelo sapere.
Eccellente - funziona perfettamente. Non avrei potuto chiedere una soluzione più facile :). Hai i miei sinceri ringraziamenti! – Butteredchops
ottima risposta! grazie! –
Vorrei aggiungere che non è necessario coprire tutti i casi in 'setViewValue', solo per ImageView. Per tutte le altre viste dovresti semplicemente restituire 'false' e in questo caso Android applicherà il binding normale che hai fornito a SimpleCursorAdapter. – damluar