2016-07-07 35 views
0

我正在嘗試使用picasso加載包含文本和圖像的列表視圖。我試圖從各自的字符串數組中的URL中加載圖像。文本部分正在listView中加載。然而,圖像不加載,所以我得到的是一個listView與文本在其各自的行,但沒有圖像。我如何使用畢加索來做到這一點?提前致謝!從Android Studio中的ListView中使用Picasso顯示字符串URL數組的圖像

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,parent);'爲什麼?它會讓你的整個方法的代碼無用 – Selvin

+0

@Selvin那我該怎麼做?返回convertView? – Kekis2014

+0

*我應該怎麼做?*閱讀關於Adapter類的基礎知識......顯然'Adapter.getView'應該:1.如果'convertView'爲空時創建視圖2.將數據綁定到視圖(從convertView創建或回收)3 。return創建(或回收)視圖... – Selvin

回答

0

我修改了您的適配器。

........ 
@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); 
} 
} 

希望這會幫助你。

相關問題