2014-09-30 4 views
0

мне нужно передать эту строку в адаптер списокКак я пройти Picasso в ListView адаптер

Picasso.with(getActivity()).load(imageurl).into(imageOrders); 

Список

ListView list= (ListView) getActivity().findViewById(R.id.list); 
ListAdapter adapter=new SimpleAdapter(getActivity(),orderList,R.layout.order_usa_row, 
new String[]{TAG_PRICE,TAG_TITLE,TAG_PSTATUS,TAG_PRICESYMBOL,TAG_IMAGE},new int[]{R.id.price,R.id.title,R.id.pstatus,R.id.symbol,R.id.imageOrders}); 

list.setAdapter(adapter); 

Я новичок, я пытался много но я не могу понять это, пожалуйста, помогите

ответ

2

вы не можете «передать Picasso» на адаптер. Вы должны создать свой собственный адаптер, это не так сложно, как кажется. Он может даже основываться на SimpleAdapter. Как это:

public class MyAdapter extends SimpleAdapter{ 

    public MyAdapter(Context context, List<? extends Map<String, ?>> data, int resource, String[] from, int[] to){ 
     super(context, data, resource, from, to); 
} 

    public View getView(int position, View convertView, ViewGroup parent){ 
     // here you let SimpleAdapter built the view normally. 
     View v = super.getView(position, convertView, parent); 

     // Then we get reference for Picasso 
     ImageView img = (ImageView) v.getTag(); 
     if(img == null){ 
     img = (ImageView) v.findViewById(R.id.imageOrders); 
     v.setTag(img); // <<< THIS LINE !!!! 
     } 
     // get the url from the data you passed to the `Map` 
     String url = ((Map)getItem(position)).get(TAG_IMAGE); 
     // do Picasso 
     Picasso.with(v.getContext()).load(url).into(img); 

     // return the view 
     return v; 
    } 
} 

, то вы можете просто использовать этот класс без изображения по параметрам (но она все равно должна существовать внутри orderList).

ListView list= (ListView) getActivity().findViewById(R.id.list); 
ListAdapter adapter = 
     new MyAdapter(
       getActivity(), 
       orderList, 
       R.layout.order_usa_row, 
       new String[]{TAG_PRICE,TAG_TITLE,TAG_PSTATUS,TAG_PRICESYMBOL}, 
       new int[]{R.id.price,R.id.title,R.id.pstatus,R.id.symbol}); 
list.setAdapter(adapter); 
+0

сударь вам да реальный MVP, спасибо большое !!!!!!!!!!!!!!!!!!!!!!!!!! 1111 – Alex

+0

Я нашел деталь лил неправильно на мой код, пожалуйста, проверьте редактирование, я указал со стрелкой следующим образом: «<<< THIS LINE» – Budius

+0

Я использовал предыдущий код, но удалю строку Начиная с Stringurl и поместив нагрузку («строка из JSONObject (imagelink)) "), и это worket для 1 элемента списка, пока у меня есть только один элемент в списке, проверит, тогда другой парень добавит больше элементов списка в json – Alex

Смежные вопросы