Autore Topic: Ricavare id da listview  (Letto 528 volte)

Offline xixietto

Ricavare id da listview
« il: 10 Luglio 2015, 09:44:29 CEST »
0
Vorrei ricavare l id di ogni riga di una listview.. Come fare? I valori vengono presi da un DB SQLite

Inviato dal mio GT-I9505 utilizzando Tapatalk


Offline Ohmnibus

  • Utente senior
  • ****
  • Post: 717
  • Respect: +151
    • Github
    • Google+
    • @ohmnibus
    • Mostra profilo
    • Lords of Knowledge GdR
  • Dispositivo Android:
    Huawei P9 Lite
  • Play Store ID:
    Ohmnibus
  • Sistema operativo:
    Windows 7 x64
Re:Ricavare id da listview
« Risposta #1 il: 10 Luglio 2015, 10:11:20 CEST »
0
Puoi usare:

tuaListView.getAdapter().getItemId(position)

per leggerli tutti, riga per riga:

Codice (Java): [Seleziona]
for (int i=0; i<tuaListView.getAdapter().getCount(); i++) {
  long id = tuaListView.getAdapter().getItemId(i);
  //metti id dove ti pare
}
Ohmnibus
Le mie app su Play Store

È stata trovata una soluzione al tuo problema? Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato.

Offline xixietto

Re:Ricavare id da listview
« Risposta #2 il: 12 Luglio 2015, 19:19:12 CEST »
0
Ma in questo modo prende l id della listview o l id del DV SQLite? Io vorrei prendere i valori che riguardano l id del database

Inviato dal mio GT-I9505 utilizzando Tapatalk


Offline Ohmnibus

  • Utente senior
  • ****
  • Post: 717
  • Respect: +151
    • Github
    • Google+
    • @ohmnibus
    • Mostra profilo
    • Lords of Knowledge GdR
  • Dispositivo Android:
    Huawei P9 Lite
  • Play Store ID:
    Ohmnibus
  • Sistema operativo:
    Windows 7 x64
Re:Ricavare id da listview
« Risposta #3 il: 12 Luglio 2015, 19:26:25 CEST »
0
Dipende da come hai implementato l'adapter.

Una corretta implementazione dovrebbe restituire l'ID del record nel DB corrispondente alla riga.
Ohmnibus
Le mie app su Play Store

È stata trovata una soluzione al tuo problema? Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato.

Offline tonno16

  • Utente storico
  • *****
  • Post: 1228
  • Respect: +59
    • Mostra profilo
  • Dispositivo Android:
    moto g
  • Play Store ID:
    Diego Tonini
  • Sistema operativo:
    OpenSuse
Re:Ricavare id da listview
« Risposta #4 il: 13 Luglio 2015, 00:29:52 CEST »
0
In quel metodo non hai l' id di SQLite.
Io solitamente ho il mio oggetto custom dove fra i vari campi ho anche un intero id. Quando credo un oggetto il costruttore non vuole alcun parametro id. Invece tramite SQLite ho un metodo che ricava il cursor, ma in quel cursor la prima colonna ritorna l' id del record. Cosi l' adapter sa che id è associato all' item in una certa posizione

Offline Ohmnibus

  • Utente senior
  • ****
  • Post: 717
  • Respect: +151
    • Github
    • Google+
    • @ohmnibus
    • Mostra profilo
    • Lords of Knowledge GdR
  • Dispositivo Android:
    Huawei P9 Lite
  • Play Store ID:
    Ohmnibus
  • Sistema operativo:
    Windows 7 x64
Re:Ricavare id da listview
« Risposta #5 il: 13 Luglio 2015, 10:48:57 CEST »
0

Se avessi definito correttamente il database, avresti come chiave primaria la colonna "_id", che è quella che viene restituita da getItemID() nei CursorAdapter.

Se hai chiamato in modo diverso la tua chiave primaria devi fare l'override di getItemID:

Codice (Java): [Seleziona]
@Override
public long getItemId(int position) {
    Cursor cursor = getCursor(); //Questo serve se non hai il cursore come campo dell'adapter
    cursor.moveToPosition(position);
    return cursor.getLong(mCursor.getColumnIndex("nome_tuo_id"));
}
Ohmnibus
Le mie app su Play Store

È stata trovata una soluzione al tuo problema? Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato.