2017-03-14 2 views
0

J'essaie d'ajouter des images à ma liste, qui est faite à partir du contenu récupéré de . Dans le but d'ajouter les images que j'essaie d'utiliser , et j'ai regardé un tutorial à ce sujet et cela a fonctionné, le problème est que je ne pense pas qu'il peut être utilisé dans mon application, du moins pas avec le méthode que j'ai vu. Voici mon code, j'espère que tout le monde peut m'aider et m'expliquer comment faire.Comment ajouter des images avec Picasso

public class TodosOsPaises extends AppCompatActivity { 

    private String TAG = TodosOsPaises.class.getSimpleName(); 
    private ProgressDialog pDialog; 
    private ListView lv; 
    private static String url = "http://"; 
    ArrayList<HashMap<String, String>> listaPaises; 


    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_todos_os_paises); 

     listaPaises = new ArrayList<>(); 
     lv = (ListView) findViewById(R.id.list); 
     new GetPaises().execute(); 
    } 

    private class GetPaises extends AsyncTask<Void, Void, Void> implements Serializable { 
     @Override 
     protected void onPreExecute() { 
      super.onPreExecute(); 
      pDialog = new ProgressDialog(TodosOsPaises.this); 
      pDialog.setMessage("Aguarde..."); 
      pDialog.setCancelable(false); 
      pDialog.show(); 
     } 

     @Override 
     protected Void doInBackground(Void... params) { 
      HttpHandler sh = new HttpHandler(); 
      final String jsonStr = sh.makeServiceCall(url); 
      Log.e(TAG, "Response from URL: " + jsonStr); 
      if (jsonStr != null) { 
       try { 
        JSONArray array = new JSONArray(jsonStr); 
        for (int i = 0; i < array.length(); i++) { 
         JSONObject jsonObject = array.getJSONObject(i); 
         JSONArray paises = jsonObject.optJSONArray("paises"); 
         if (paises != null) { 
          for (int j = 0; j < paises.length(); j++) { 
           JSONObject jsonObject1 = paises.getJSONObject(j); 

           String K_PAIS = jsonObject1.getString("K_PAIS"); 
           String Designacao = jsonObject1.getString("Designacao"); 
           String URL_IMAGE_SMALL = jsonObject1.getString("URL_IMAGE_SMALL"); 
           String Coord_LAT = jsonObject1.getString("Coord_LAT"); 
           String Coord_LONG = jsonObject1.getString("Coord_LONG"); 
           String Coord_Zoom = jsonObject1.getString("Coord_Zoom"); 

           HashMap<String, String> pais = new HashMap<>(); 


           pais.put("K_PAIS", K_PAIS); 
           pais.put("Designacao", Designacao); 
           pais.put("URL_IMAGE_SMALL", URL_IMAGE_SMALL); 
           pais.put("URL_IMAGEM", URL_IMAGEM); 
           pais.put("Coord_LAT", Coord_LAT); 
           pais.put("Coord_LONG", Coord_LONG); 
           pais.put("Coord_Zoom", Coord_Zoom); 

           listaPaises.add(pais); 
          } 
         } 
        } 
       } catch (final JSONException e) { 
        Log.e(TAG, "Json parsing error: " + e.getMessage()); 
        runOnUiThread(new Runnable() { 
         @Override 
         public void run() { 
          Toast.makeText(getApplicationContext(), "Json parsin error: " + e.getMessage(), Toast.LENGTH_LONG).show(); 
         } 
        }); 
       } 

      } else { 
       Log.e(TAG, "Couldn't get json from server."); 
       runOnUiThread(new Runnable() { 
        @Override 
        public void run() { 
         Toast.makeText(getApplicationContext(), "Couldn't get json from server. Check LogCat for possible errpr!", Toast.LENGTH_LONG).show(); 
        } 
       }); 
      } 
      return null; 
     } 

     @Override 
     protected void onPostExecute(Void result) { 
      super.onPostExecute(result); 
      if (pDialog.isShowing()) { 
       pDialog.dismiss(); 
      } 
      ListAdapter adapter = new SimpleAdapter(TodosOsPaises.this, listaPaises, R.layout.list_item, new String[]{"Designacao", "URL_IMAGEM"}, 
        new int[]{R.id.Designacao, R.id.imageViewPais}); 
      lv.setAdapter(adapter); 
      lv.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
       @Override 
       public void onItemClick(AdapterView<?> pare, View view, int position, long id) { 
        Intent intent = new Intent(TodosOsPaises.this, MapsActivity.class); 
        intent.putExtra("data", listaPaises.get(position)); 
        startActivity(intent); 
       } 
      }); 

      Collections.sort(listaPaises, new Comparator<HashMap<String, String>>() { 
       @Override 
       public int compare(HashMap<String, String> first, HashMap<String, String> second) { 
        String firstValue = first.get("Designacao"); 
        String secondValue = second.get("Designacao"); 
        return firstValue.compareTo(secondValue); 
       } 
      }); 
     } 
    } 
} 

Répondre

0
Picasso.with(content) 
      .load("path_or_url_or_file") 
      .into(new Target() { 
       @Override public void onBitmapLoaded(final Bitmap bitmap, 
         final Picasso.LoadedFrom from) { 

       } 

       @Override public void onBitmapFailed(final Drawable errorDrawable) { 

       } 

       @Override public void onPrepareLoad(final Drawable placeHolderDrawable) { 

       } 
      }); 
+0

Mais, quid du « contenu » qui est mon problème, je n'ai pas contenu dans mon application, est-il suffisant pour créer la variable « contexte content = null; »? – alb

+0

@alb Essayez l'utilisateur 'this' ou 'getContent()' ou 'getActivity()' Je ne peux pas avoir une seule réponse. AppCompactActivity étend le contenu (pls lire quelques articles sur la structure Android app) –

+0

Aucun de ces travaux ... – alb