Autore Topic: Parse testo e immagini da file JSON  (Letto 492 volte)

Offline felasandroid

  • Utente normale
  • ***
  • Post: 345
  • Respect: +10
    • Github
    • balduzziantonio
    • balduzziantonio.unifi
    • Mostra profilo
  • Dispositivo Android:
    Huawei P8 Lite
  • Play Store ID:
    FelasTech
  • Sistema operativo:
    Windows 10
Parse testo e immagini da file JSON
« il: 07 Dicembre 2013, 13:56:34 CET »
0
In pratica usando delle API per le previsioni del meteo, ottengo tra le varie informazioni anche l'url per visualizzare un immagine, ma questa immagine come faccio a metterla nella listview ?


Codice (Java): [Seleziona]
                JSONArray previsioni = response.getJSONObject("data").getJSONArray("weather");
               
                                       
                                        for(int i=0;i < previsioni.length();i++){                                              

                                        HashMap<String, String> map = new HashMap<String, String>();
                                        JSONObject e = previsioni.getJSONObject(i);

                                        map.put("id",  String.valueOf(i));
                                        map.put("date", "Data: " +  e.getString("date"));
                        map.put("tempMinC", "Temperatura Minima:" + e.getString("tempMinC"));
                                        map.put("tempMaxC", "Temperatura Massima:" + e.getString("tempMaxC"));
                                       
                                       
               
                                        oslist.add(map);
                                }
                                       
                                       
                                        list=(ListView)findViewById(R.id.list);
                                       
                                        ListAdapter adapter = new SimpleAdapter(Consulting_Test.this, oslist,
                                        R.layout.list_v,
                                        new String[] { "date" ,"tempMinC", "tempMaxC" }, new int[] {
                                                R.id.date,R.id.tempMinC, R.id.tempMaxC});
                                       
       
                                        list.setAdapter(adapter);
                                list.setOnItemClickListener(new AdapterView.OnItemClickListener() {

                                    @Override
                                    public void onItemClick(AdapterView<?> parent, View view,
                                                            int position, long id) {
                                        //Toast.makeText(Consulting_Test.this, "You Clicked at "+oslist.get(+position).get("name"), Toast.LENGTH_SHORT).show();

                                    }
                                });


dove il file JSON è:

Codice: [Seleziona]
{
    "data": {
        "current_condition": [{
            "cloudcover": "0",
            "humidity": "100",
            "observation_time": "10:39 AM",
            "precipMM": "0.0",
            "pressure": "1022",
            "temp_C": "5",
            "temp_F": "41",
            "visibility": "0",
            "weatherCode": "248",
            "weatherDesc": [{
                "value": "Fog"
            }],
            "weatherIconUrl": [{
                "value": "http:\/\/cdn.worldweatheronline.net\/images\/wsymbols01_png_64\/wsymbol_0007_fog.png"
            }],
            "winddir16Point": "NE",
            "winddirDegree": "44",
            "windspeedKmph": "0",
            "windspeedMiles": "0"
        }],
        "request": [{
            "query": "Florence, Italy",
            "type": "City"
        }],
        "weather": [{
            "date": "2013-12-07",
            "precipMM": "0.0",
            "tempMaxC": "11",
            "tempMaxF": "51",
            "tempMinC": "-1",
            "tempMinF": "30",
            "weatherCode": "116",
            "weatherDesc": [{
                "value": "Partly Cloudy"
            }],
            "weatherIconUrl": [{
                "value": "http:\/\/cdn.worldweatheronline.net\/images\/wsymbols01_png_64\/wsymbol_0002_sunny_intervals.png"
            }],
            "winddir16Point": "ENE",
            "winddirDegree": "62",
            "winddirection": "ENE",
            "windspeedKmph": "9",
            "windspeedMiles": "6"
        }, {
            "date": "2013-12-08",
            "precipMM": "0.0",
            "tempMaxC": "12",
            "tempMaxF": "53",
            "tempMinC": "0",
            "tempMinF": "31",
            "weatherCode": "113",
            "weatherDesc": [{
                "value": "Sunny"
            }],
            "weatherIconUrl": [{
                "value": "http:\/\/cdn.worldweatheronline.net\/images\/wsymbols01_png_64\/wsymbol_0001_sunny.png"
            }],
            "winddir16Point": "S",
            "winddirDegree": "172",
            "winddirection": "S",
            "windspeedKmph": "4",
            "windspeedMiles": "2"
        }, {
            "date": "2013-12-09",
            "precipMM": "0.0",
            "tempMaxC": "12",
            "tempMaxF": "53",
            "tempMinC": "-1",
            "tempMinF": "30",
            "weatherCode": "116",
            "weatherDesc": [{
                "value": "Partly Cloudy"
            }],
            "weatherIconUrl": [{
                "value": "http:\/\/cdn.worldweatheronline.net\/images\/wsymbols01_png_64\/wsymbol_0002_sunny_intervals.png"
            }],
            "winddir16Point": "SW",
            "winddirDegree": "226",
            "winddirection": "SW",
            "windspeedKmph": "6",
            "windspeedMiles": "4"
        }, {
            "date": "2013-12-10",
            "precipMM": "0.0",
            "tempMaxC": "10",
            "tempMaxF": "51",
            "tempMinC": "0",
            "tempMinF": "32",
            "weatherCode": "113",
            "weatherDesc": [{
                "value": "Sunny"
            }],
            "weatherIconUrl": [{
                "value": "http:\/\/cdn.worldweatheronline.net\/images\/wsymbols01_png_64\/wsymbol_0001_sunny.png"
            }],
            "winddir16Point": "NE",
            "winddirDegree": "41",
            "winddirection": "NE",
            "windspeedKmph": "13",
            "windspeedMiles": "8"
        }, {
            "date": "2013-12-11",
            "precipMM": "0.0",
            "tempMaxC": "13",
            "tempMaxF": "55",
            "tempMinC": "1",
            "tempMinF": "35",
            "weatherCode": "113",
            "weatherDesc": [{
                "value": "Sunny"
            }],
            "weatherIconUrl": [{
                "value": "http:\/\/cdn.worldweatheronline.net\/images\/wsymbols01_png_64\/wsymbol_0001_sunny.png"
            }],
            "winddir16Point": "NE",
            "winddirDegree": "41",
            "winddirection": "NE",
            "windspeedKmph": "11",
            "windspeedMiles": "7"
        }]
    }
}



in pratica nel map devo salvarci anche l'url e nel layout della lista aggiungerci una ImageView giusto?

Post unito: 07 Dicembre 2013, 16:11:45 CET
il problema è che questa immagine da URL che devo diciamo trasformarla in Drawable prima di metterla nella map..

o mi carico prima le immagini quindi salvarle e poi me le richiamo..perchè provando a fare questa transformazione all'interno mi dà errore

Post unito: 07 Dicembre 2013, 19:41:45 CET
Risolto ;-)
« Ultima modifica: 07 Dicembre 2013, 19:41:45 CET da felasandroid, Reason: Merged DoublePost »