Autore Topic: Eliminare elementi da ArrayList dopo scelta dell'utente  (Letto 1237 volte)

Offline mangusto

  • Utente normale
  • ***
  • Post: 152
  • Respect: +5
    • Google+
    • Mostra profilo
  • Dispositivo Android:
    ZTE Blade
  • Play Store ID:
    Leonardo Preti
  • Sistema operativo:
    Windows 7
Eliminare elementi da ArrayList dopo scelta dell'utente
« il: 27 Aprile 2011, 23:38:19 CEST »
0
Ho un problemino dato dalla mia ignoranza su Android e cercando su internet e leggendo la documentazione non sono riuscito a trovare una risposta.

Io ho un ArrayList composto in questa maniera:
Codice (Java): [Seleziona]
ArrayList<Ricetta> ciboList = new ArrayList<Ricetta>();
ciboList.add(new Ricetta(numero, titolo, difficolta, tempo, mercato, online, consigli, preparazione));
Il parametro numero è un int, gli altri sono String.
Io vorrei che in base ad una decisione dell'utente vengano visualizzate solo alcune voci dell'ArrayList (quindi solo alcune ricette). In questo momento io popolo l'ArrayList con tutte le voci e successivamente attraverso un if-else o un switch-case utilizzando un parametro che mi permette di determinare la scelta dell'utente vorrei visualizzare solo alcune voci all'interno di una ListView definita successivamente.
Qualcuno può suggerirmi come procedere? Fino ad ora non sono riuscito a cavare un ragno dal buco..
Sono (ovviamente!) ben accetti anche metodi che non prevedono quello che ho pensato io! 8-)

Offline mangusto

  • Utente normale
  • ***
  • Post: 152
  • Respect: +5
    • Google+
    • Mostra profilo
  • Dispositivo Android:
    ZTE Blade
  • Play Store ID:
    Leonardo Preti
  • Sistema operativo:
    Windows 7
Re:Eliminare elementi da ArrayList dopo scelta dell'utente
« Risposta #1 il: 28 Aprile 2011, 17:30:00 CEST »
0
Ho risolto da solo con un altro metodo ;)

Offline 7h38ugg3r

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1200
  • Respect: +133
    • riccardofischetti
    • th38ugg3r
    • @7h38ugg3r
    • Mostra profilo
  • Dispositivo Android:
    Galaxy-S GT I-9000/ ASUS Eee Pad Transformer
  • Play Store ID:
    Riccardo Fischetti
  • Sistema operativo:
    OS X Lion / Linux Mint 11 (Katya)
Re:Eliminare elementi da ArrayList dopo scelta dell'utente
« Risposta #2 il: 28 Aprile 2011, 17:32:33 CEST »
0
perché non dici come hai fatto?
potrebbe essere utile a qualcun'altro.
7h38ugg3r<=>thebugger
Non conosci Java? Allora sei nel posto sbagliato!

http://www.androidpatterns.com/

Offline mangusto

  • Utente normale
  • ***
  • Post: 152
  • Respect: +5
    • Google+
    • Mostra profilo
  • Dispositivo Android:
    ZTE Blade
  • Play Store ID:
    Leonardo Preti
  • Sistema operativo:
    Windows 7
Re:Eliminare elementi da ArrayList dopo scelta dell'utente
« Risposta #3 il: 28 Aprile 2011, 17:39:06 CEST »
0
Hai ragione!
Prima il mio pensiero era di aggiungere tutte le voci all'ArrayList e successivamente eliminare quelle che non mi interessavano attraverso uno switch-case.
Ora invece ho trovato più comodo fare così: mentre un ciclo for mi inizializza tutte le voci, prima di aggiungerle effettivamente, ho piazzato lo switch-case e ho messo l'aggiunta delle voci solo se le condizioni nell'if ritornavano true.

Ovviamente ecco il codice per capire meglio cosa ho fatto
Codice (Java): [Seleziona]
ArrayList<HashMap<String,Object>> data = new ArrayList<HashMap<String,Object>>();
       
        for(int i=0;i<ciboList.size();i++){
                Ricetta r = (Ricetta) ciboList.get(i); // Ciclo per scrivere tutti gli elementi
               
                HashMap<String,Object> ricettaMap = new HashMap<String, Object>();

                ricettaMap.put("numero", r.getNumero());
                ricettaMap.put("titolo", r.getTitolo());
                switch(id){
                        case 1: // parametro determinato da una decisione dell'utente
                                if(r.getNumero()<25) data.add(ricettaMap);
                                break;
                        case 2:
                                if(r.getNumero()>=25 && r.getNumero()<50) data.add(ricettaMap);
                                break;
                }              
        }