2013-08-17 11 views
36

Sto cercando di creare un elenco di trascinamento della selezione per una piccola app di gioco che sto scrivendo.Creare un cursore da matrice hardcoded anziché DB

Ci sono 6 voci nell'elenco. Tuttavia, la libreria che ho aggiunto richiedeva un oggetto Cursore che parla con un DB. Questo è eccessivo per la mia situazione.

C'è un modo per creare un oggetto cursore basato su una struttura di dati basata sulla memoria come un array? C'è un modo in cui posso usare un array hard-coded come il mio cursore?

Grazie

risposta

46

Scopri i MatrixCursordocumentation. Verifica ad esempio this example.

String[] columns = new String[] { "_id", "item", "description" }; 

MatrixCursor matrixCursor= new MatrixCursor(columns); 
startManagingCursor(matrixCursor); 

matrixCursor.addRow(new Object[] { 1, "Item A", "...." }); 

SimpleCursorAdapter adapter = 
     new SimpleCursorAdapter(this, R.layout.layout_row, matrixCursor, ...); 

setListAdapter(adapter); 
+0

, @ FaddishWorm Grazie per il post. Mi diresti gentilmente perché sto ricevendo l'errore "return type per il metodo mancante" per startManagingCursor (matrixCursor). Che cosa è la soluzione per risolvere questo problema. Sto usando l'API 19 con il minimo supporto api 8. – Dexter

+0

@FaddishWorm: Ho risolto il problema. È stato uno stupido errore. Stavo facendo la chiamata al posto sbagliato cioè. non all'interno di alcun metodo della classe. Sono riuscito a farlo funzionare come getActivity(). StartManagingCursor (matrixCursor) come la classe è un frammento. – Dexter

+0

Sarebbe bello per il codice completo. IE quel layout è qualcosa che hai fatto ??? Sto solo testando le librerie qui e ho bisogno di un cursore con le stringhe – StarWind0

2

forse è possibile controllare MatrixCursor classe che si può chiamare addRow((Iterable<?> columnValues) o addRow(Object[] columnValues) speranza che aiuterà

1

uso MatrixCursor, invece di addRow(), che non è molto pratico, utilizzare il metodo costruttore newRow()

Problemi correlati