Autore Topic: Caricamento immagini tramite parsing da file JSON  (Letto 291 volte)

Offline donpelajo

  • Nuovo arrivato
  • *
  • Post: 2
  • Respect: 0
    • Mostra profilo
Caricamento immagini tramite parsing da file JSON
« il: 06 Novembre 2014, 12:17:54 CET »
0
Ciao ragazzi, ho un problema che non riesco a risolvere. In rete ho trovato varie soluzioni e vari esempi, ma non riesco ad adattarli al mio caso specifico.

Si tratta di visualizzare, all'interno di una ListView, delle immagini. Sono copertine di dischi che sono quindi associate al singolo disco.

Per fare questo mi servo di due Fragment che comunicano tra loro, e lo fanno in questo modo:

Fragment lista mostra autore e titolo, al click sulla voce Fragment product mostra copertina, autore titolo e testo. I dati arrivano da un file JSON.

Non riesco a trasformare la stringa copertina (http://...jpeg) in immagine.

Nel model (classe Records) ho getter e setter per una String image.

Nella classe RecordsList, inizializzo tre variabili String alle quali poi assegno il valore all'interno di un AsyncTask (onPostExecute), che a sua volta si trova in una funzione appendData() :

Codice (Java): [Seleziona]
        public static String IMAGE = "image";
        public static String AUTHOR = "author";
        public static String TITLE = "title";

try {
        JSONArray items = (JSONArray)(new JSONTokener(result).nextValue());
                                       
        for (int i = 0; i < items.length(); i++) {
                JSONObject item = (JSONObject) items.get(i);
                                               
                TITLE = item.getString("author");
                AUTHOR = item.getString("title");
                IMAGE = item.getString("image");
                                               
                Records recs = new Records(IMAGE, AUTHOR, TITLE) ;
                                               
                String rec = recs.getImage();
                                               
                Log.d("JWP", rec);
                                               
                add(new Records(IMAGE, AUTHOR, TITLE));
        } etc...

        public RecordsList() {
                appendData();
        }

Il Log mi dà il risultato voluto (url delle copertine).

A questo punto, nel Fragment del product...

Codice (Java): [Seleziona]
        public Records record;
       
        public ImageView imageView;

        public ProductFragment(Records record) {
                this.record = record;
        }

Nell' onCreateView()...

Codice (Java): [Seleziona]
        [...]
        if (record != null) {
                setRecord(record, view);
        }
               
        return view;

Allora eseguirò setRecord()

Codice (Java): [Seleziona]
        public void setRecord(Records records) {
                View view = getView();
                setRecord(records, view);
        }
       
        private void setRecord(Records record, View view) {

                ImageView imageView = (ImageView) view.findViewById(R.id.image);
                TextView titleView = (TextView) view.findViewById(R.id.title);
                TextView authorView = (TextView) view.findViewById(R.id.author);
               
                //imageView.setImageResource(R.drawable.ic_launcher);
               
                titleView.setText(record.getTitle());
                authorView.setText(record.getAuthor());
        }      

E adesso? Qui mi perdo e non so come andare avanti perchè in vari esempi che ho visto il tutto si fa in modo diverso, ma non si ottiene lo stesso risultato pulito (comunicazione tra i due Fragment).

Help me please  O:-)