Autore Topic: ArrayList restituzione  (Letto 117 volte)

Offline Nikococo93

  • Nuovo arrivato
  • *
  • Post: 41
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Huawei p8 lite
  • Sistema operativo:
    Android
ArrayList restituzione
« il: 09 Novembre 2016, 17:00:12 CET »
0
Salve ragazzi avrei questa ArrayList:
ArrayList<Category> categories = new ArrayList<Category>();

                JSONObject demo      = prova.getJSONObject(0);
                Category myCategory  = new Category(demo);

                categories.add(myCategory);

                JSONObject demo1     = prova.getJSONObject(1);
                Category myCategory1 = new Category(demo1);

                categories.add(myCategory1);

                JSONObject demo2     = prova.getJSONObject(2);
                Category myCategory2 = new Category(demo2);

                categories.add          (myCategory2);

                JSONObject demo3     = prova.getJSONObject(3);
                Category myCategory3 = new Category(demo3);

                categories.add(myCategory3);

che come noterete è uguale quasi d'appertutto tranne che per il valore di inserimento 0,1,2,3...tra parentesi tonde..
La mia domanda è come potrei ottimizzare il tutto siccome sono istruzioni molto simili tra loro..cerco insomma un modo per scriverla in maniera più sciolta piu concentrata per intenderci,avete idee??
grazie mille :)

Offline capitancooker

  • Utente junior
  • **
  • Post: 56
  • Marco
  • Respect: +3
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5, Asus Zenpad S 8.0
  • Sistema operativo:
    Mac OSX El Capitan
Re:ArrayList restituzione
« Risposta #1 il: 09 Novembre 2016, 17:10:27 CET »
0
Prova così:
Codice (Java): [Seleziona]
ArrayList<Category> categories = new ArrayList<Category>();
for(JSONObject demo:prova){
       Category myCategory  = new Category(demo);
       categories.add(myCategory);
}

Ciao,
Marco
« Ultima modifica: 09 Novembre 2016, 17:45:47 CET da capitancooker »
Se sbaglio, correggetemi.

Offline Nikococo93

  • Nuovo arrivato
  • *
  • Post: 41
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Huawei p8 lite
  • Sistema operativo:
    Android
Re:ArrayList restituzione
« Risposta #2 il: 09 Novembre 2016, 17:20:22 CET »
0
ti ringrazio per la risposta,poichè è giustissima non ci avevo proprio pensato,
adesso voglio chiederti ho questi costruttori:

    public Category(int iD, String name) {
        super();
        this.iD   = iD;
        this.name = name;
    }

    public Category(JSONObject jsonObject) {
        try {
            this.iD   = jsonObject.getInt("id");
            this.name = jsonObject.getString("name");

        } catch (JSONException e) {
            e.printStackTrace();
        }

come posso quindi inizializzare le nuove variabili nel ciclo for?
devo farlo dal costruttore?

Offline capitancooker

  • Utente junior
  • **
  • Post: 56
  • Marco
  • Respect: +3
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5, Asus Zenpad S 8.0
  • Sistema operativo:
    Mac OSX El Capitan
Re:ArrayList restituzione
« Risposta #3 il: 09 Novembre 2016, 17:25:36 CET »
0
Nel ciclo for l'oggetto Category viene inizializzato e valorizzato con lo statement new, non credo ti serva altro.
Approfitto per correggere la sintassi del for, qui ci vanno i due punti e non il punto e virgola: for(JSONObject demo:prova)
Ciao,
Marco
Se sbaglio, correggetemi.

Offline Nikococo93

  • Nuovo arrivato
  • *
  • Post: 41
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Huawei p8 lite
  • Sistema operativo:
    Android
Re:ArrayList restituzione
« Risposta #4 il: 09 Novembre 2016, 17:32:30 CET »
0
ma non mi fa inserire giustamente "prova" poichè non è dichiarata ne inizializzata,
avevo pensato di inserirla nel costruttore e poi richiamarmela nel ciclo..
oppure mi basta dichiararla e inizializzarla? ma come?

Offline capitancooker

  • Utente junior
  • **
  • Post: 56
  • Marco
  • Respect: +3
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5, Asus Zenpad S 8.0
  • Sistema operativo:
    Mac OSX El Capitan
Re:ArrayList restituzione
« Risposta #5 il: 09 Novembre 2016, 17:45:22 CET »
0
Do per scontato che l'oggetto prova sia un JSONArray e non so come tu voglia popolarlo o da dove vuoi attingere i dati.
Per ora ti posso dare un esempio statico che potrebbe essere così (con solo tre elementi):
Codice (Java): [Seleziona]
            JSONArray prova = new JSONArray(); // inizializzo l'array

            JSONObject obj = new JSONObject(); // creo il primo elemento
            obj.put("id", new Integer(1));  // valorizzo le variabili
            obj.put("name", "pippo");
            prova.put(obj); // inserisco l'elemento nell'array

            obj = new JSONObject(); // idem c.s.
            obj.put("id", new Integer(2));
            obj.put("name", "pluto");
            prova.put(obj);

            obj = new JSONObject();
            obj.put("id", new Integer(3));
            obj.put("name", "paperino");
            prova.put(obj);

Ciao,
Marco
Se sbaglio, correggetemi.

Offline Nikococo93

  • Nuovo arrivato
  • *
  • Post: 41
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Huawei p8 lite
  • Sistema operativo:
    Android
Re:ArrayList restituzione
« Risposta #6 il: 09 Novembre 2016, 18:13:45 CET »
0
Grazie mille Marco con questo esempio ho capito perfettamente :) Risolto.