Autore Topic: Cancellare elemento da listVIew tramite id  (Letto 1031 volte)

Offline androider

  • Translate Team
  • Utente normale
  • ***
  • Post: 261
  • In campo come nella vita.
  • Respect: +1
    • andreadannibale
    • andreadevil
    • Mostra profilo
    • AnAndroider
  • Dispositivo Android:
    Nexus One
  • Play Store ID:
    AnAnApps
  • Sistema operativo:
    Mac Os X Snow Leopard
Cancellare elemento da listVIew tramite id
« il: 01 Novembre 2010, 22:04:24 CET »
0
Codice (Java): [Seleziona]
AdapterView.OnItemClickListener mItemListener =
           new OnItemClickListener() {
           public void onItemClick(AdapterView parent,View v,int pos,long id) {
          //??
             }
        };

Ho una listView di elementi di un database, come faccio a eliminare l'elemento o nella posizione "pos" o di id "id"? Che metodo si usa?
Se i cosiddetti "migliori" di noi avessero il coraggio di
sottovalutarsi almeno un po' vivremmo in un mondo infinitamente migliore.

In ogni cAso nessun rimorso.

Offline Qlimax

  • Moderatore globale
  • Utente senior
  • *****
  • Post: 757
  • Respect: +202
    • Google+
    • _Qlimax
    • Mostra profilo
    • www.egsolutions.ch
  • Dispositivo Android:
    Galaxy Nexus - Nexus One - Wildfire - Magic
  • Play Store ID:
    egsolutions.ch
  • Sistema operativo:
    Ubuntu 12.04, Windows 7
Re:Cancellare elemento da listVIew tramite id
« Risposta #1 il: 01 Novembre 2010, 23:15:17 CET »
0
li rimuovi dalla lista/array sorgente , poi chiami notifyDatasetChanged sull'adapter

Offline androider

  • Translate Team
  • Utente normale
  • ***
  • Post: 261
  • In campo come nella vita.
  • Respect: +1
    • andreadannibale
    • andreadevil
    • Mostra profilo
    • AnAndroider
  • Dispositivo Android:
    Nexus One
  • Play Store ID:
    AnAnApps
  • Sistema operativo:
    Mac Os X Snow Leopard
Re:Cancellare elemento da listVIew tramite id
« Risposta #2 il: 01 Novembre 2010, 23:19:36 CET »
0
ho provato a richiamare
Codice (Java): [Seleziona]
listView.removeView() ma non mi funziona; avendo la posizione c'è un metodo per cancellare l'item nella posizione che ho?
Se i cosiddetti "migliori" di noi avessero il coraggio di
sottovalutarsi almeno un po' vivremmo in un mondo infinitamente migliore.

In ogni cAso nessun rimorso.

Offline Qlimax

  • Moderatore globale
  • Utente senior
  • *****
  • Post: 757
  • Respect: +202
    • Google+
    • _Qlimax
    • Mostra profilo
    • www.egsolutions.ch
  • Dispositivo Android:
    Galaxy Nexus - Nexus One - Wildfire - Magic
  • Play Store ID:
    egsolutions.ch
  • Sistema operativo:
    Ubuntu 12.04, Windows 7
Re:Cancellare elemento da listVIew tramite id
« Risposta #3 il: 01 Novembre 2010, 23:23:57 CET »
0
li rimuovi dalla lista/array sorgente , poi chiami notifyDatasetChanged sull'adapter

Offline androider

  • Translate Team
  • Utente normale
  • ***
  • Post: 261
  • In campo come nella vita.
  • Respect: +1
    • andreadannibale
    • andreadevil
    • Mostra profilo
    • AnAndroider
  • Dispositivo Android:
    Nexus One
  • Play Store ID:
    AnAnApps
  • Sistema operativo:
    Mac Os X Snow Leopard
Re:Cancellare elemento da listVIew tramite id
« Risposta #4 il: 01 Novembre 2010, 23:27:52 CET »
0
Ho capito ma se ero capace l'avrei fatto... :-\
Se i cosiddetti "migliori" di noi avessero il coraggio di
sottovalutarsi almeno un po' vivremmo in un mondo infinitamente migliore.

In ogni cAso nessun rimorso.

Offline Qlimax

  • Moderatore globale
  • Utente senior
  • *****
  • Post: 757
  • Respect: +202
    • Google+
    • _Qlimax
    • Mostra profilo
    • www.egsolutions.ch
  • Dispositivo Android:
    Galaxy Nexus - Nexus One - Wildfire - Magic
  • Play Store ID:
    egsolutions.ch
  • Sistema operativo:
    Ubuntu 12.04, Windows 7
Re:Cancellare elemento da listVIew tramite id
« Risposta #5 il: 02 Novembre 2010, 09:16:20 CET »
0
ArrayList | Android Developers
http://it.wikipedia.org/wiki/Array_in_Java
per chiamare un metodo poi, usi il  "." dopo il nome dell'oggetto. Eclipse ti proporrà i diversi metodi che puoi invocare su quell oggetto.

Offline androider

  • Translate Team
  • Utente normale
  • ***
  • Post: 261
  • In campo come nella vita.
  • Respect: +1
    • andreadannibale
    • andreadevil
    • Mostra profilo
    • AnAndroider
  • Dispositivo Android:
    Nexus One
  • Play Store ID:
    AnAnApps
  • Sistema operativo:
    Mac Os X Snow Leopard
Re:Cancellare elemento da listVIew tramite id
« Risposta #6 il: 02 Novembre 2010, 21:41:57 CET »
0
Ho posto male il problema probabilmente.. la mia listView è gestita da un SimpleCursorAdapter,ho controllato e mi sembra che non abbia metodi per rimuovere elementi tramite id..inoltre vorrei anche precisare che questa lista contiene elementi prelevati da un db..
Se i cosiddetti "migliori" di noi avessero il coraggio di
sottovalutarsi almeno un po' vivremmo in un mondo infinitamente migliore.

In ogni cAso nessun rimorso.

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:Cancellare elemento da listVIew tramite id
« Risposta #7 il: 02 Novembre 2010, 21:57:55 CET »
+1
Ho posto male il problema probabilmente.. la mia listView è gestita da un SimpleCursorAdapter,ho controllato e mi sembra che non abbia metodi per rimuovere elementi tramite id..inoltre vorrei anche precisare che questa lista contiene elementi prelevati da un db..

Io in un caso simile ho rimosso il dato dal database con la funzione delete() del database SQLiteDatabase. Poi ho fatto requery() del cursor associato all'adapter.

Qualcosa tipo:
Codice (Java): [Seleziona]
mDB.delete(MIA_TABELLA,MIO_ID+"=?",mio_id);
adapter.getCursor().requery();

Che poi non è altro che la versione per-database della prima risposta di Qlimax.
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline androider

  • Translate Team
  • Utente normale
  • ***
  • Post: 261
  • In campo come nella vita.
  • Respect: +1
    • andreadannibale
    • andreadevil
    • Mostra profilo
    • AnAndroider
  • Dispositivo Android:
    Nexus One
  • Play Store ID:
    AnAnApps
  • Sistema operativo:
    Mac Os X Snow Leopard
Re:Cancellare elemento da listVIew tramite id
« Risposta #8 il: 02 Novembre 2010, 22:06:42 CET »
0
scusa però mDb.delete vuole in ingresso il nome della tabella, il campo da cancellare e la condizione. Ma la condizione String[] args è string, ed invece il campo id è int.. come fai?
Se i cosiddetti "migliori" di noi avessero il coraggio di
sottovalutarsi almeno un po' vivremmo in un mondo infinitamente migliore.

In ogni cAso nessun rimorso.

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:Cancellare elemento da listVIew tramite id
« Risposta #9 il: 02 Novembre 2010, 22:28:45 CET »
+1
scusa però mDb.delete vuole in ingresso il nome della tabella, il campo da cancellare e la condizione. Ma la condizione String[] args è string, ed invece il campo id è int.. come fai?

Converto?  8-)

Codice (Java): [Seleziona]
String[] mio_id = new String[] {Long.toString(id)};
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline androider

  • Translate Team
  • Utente normale
  • ***
  • Post: 261
  • In campo come nella vita.
  • Respect: +1
    • andreadannibale
    • andreadevil
    • Mostra profilo
    • AnAndroider
  • Dispositivo Android:
    Nexus One
  • Play Store ID:
    AnAnApps
  • Sistema operativo:
    Mac Os X Snow Leopard
Re:Cancellare elemento da listVIew tramite id
« Risposta #10 il: 02 Novembre 2010, 23:22:44 CET »
0
che dire..funziona!  :-) :D ti sono troppo grato..peccato che ho un altro problema...la mia app funziona nell'emulatore e non nell'n1..
Se i cosiddetti "migliori" di noi avessero il coraggio di
sottovalutarsi almeno un po' vivremmo in un mondo infinitamente migliore.

In ogni cAso nessun rimorso.