2016-07-07 6 views
0

Ich versuche, eine Listview zu laden, die Text und ein Bild mit Picasso enthält. Ich versuche, die Bilder mithilfe ihrer jeweiligen URLs zu laden, die sich in einem String-Array befinden. Der Textteil wird in der listView geladen. Die Bilder werden jedoch nicht geladen, so dass alles, was ich bekomme, ein listView mit den Texten in ihren jeweiligen Reihen ist, aber keine Bilder. Wie kann ich das mit Picasso machen? Danke im Voraus!Anzeigen von Bildern aus Array von String URLs in ListView in Android Studio mit Picasso

class MyAdapter extends ArrayAdapter <String> { 
    Context context; 
    String[] descriptionArray; 
    String[] url; 
    MyAdapter (Context c, String[] importerArray,String[] url) { 
     super(c, R.layout.content_orders,R.id.textView2, importerArray); 
     this.context =c; 
     this.descriptionArray = importerArray; 
     this.url = url; 
    } 


    @Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
     LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
     View row = inflater.inflate(R.layout.content_orders, list, false); 
     ImageView myImage = (ImageView) row.findViewById(R.id.imageView2); 
     TextView description = (TextView) row.findViewById(R.id.textView2); 
     description.setText(descriptionArray[position]); 
     Picasso.with(OrdersActivity.this).load(url[position]).into(myImage); 
     return super.getView(position, convertView, parent); 
    } 
} 
+2

'return super.getView (Position, convertView, Eltern);' warum? es macht den Code Ihrer ganzen Methode nutzlos – Selvin

+0

@Selvin Was soll ich dann tun? Rückgabe convertView? – Kekis2014

+0

* Was soll ich dann tun? * Lesen Sie die Grundlagen der Adapter-Klasse ... offensichtlich 'Adapter.getView' sollte: 1. View erstellen, wenn' convertView' null ist 2. Daten an die View binden (erstellt oder aus ConvertView rezykliert) 3 . zurückgegeben erstellt (oder recycelt) anzeigen ... – Selvin

Antwort

0

Ich habe Ihren Adapter geändert.

........ 
@Override 
public View getView(int _position, View _convertView, ViewGroup _parent) { 
View view = _convertView; 
ViewHolder viewHolder; 

if (view == null) { 
    view= View.inflate(context, R.layout.content_orders, null); 
    viewHolder = new ViewHolder(view); 
    view.setTag(viewHolder); 
} else { 
    viewHolder = (ViewHolder) _convertView.getTag(); 
} 
    viewHolder.description.setText(descriptionArray[position]); 
    Picasso.with(OrdersActivity.this).load(url[position].replace(" ","%20")).into(viewHolder.myImage); //here i'm editting your url, because if your url contains and blank space you can't download image from url 
    //for that i'm encoding your URL by replacing blank space with "%20" 
return view; 
} 
..... 
..... 
static class ViewHolder{ 
ImageView myImage; 
TextView description; 
public ViewHolder(View v){ 
    myImage = (ImageView) v.findViewById(R.id.imageView2); 
    description = (TextView) v.findViewById(R.id.textView2); 
} 
} 

Hoffe, das wird Ihnen helfen.

Verwandte Themen