2016-03-31 2 views
0

Что я пытаюсь сделать, это получить изображения из базы данных и показать их в спискеView. для этого я использую один класс адаптера и списка элементов, но он не показывает никакого изображения, а одно строковое значение, переданное из основного вида деятельности в класс элементов, фактически адрес изображения, в котором он хранится в базе данных. Как этоКак показать изображения в спискеView с библиотекой Picasso с сервера?

Пожалуйста, не сделать его дубликат

http://howdysend.com/Howdy/uploads/6.png ... на самом деле это адрес изображения в базе данных и 6 является идентификатор изображения. Вот мой код

Основная деятельность

listEvents.setAdapter((ListAdapter) adapterNewsFeed); 



     adapterNewsFeed = new AdapterNewsFeed(getActivity(), R.layout.custom_events_list_in_newsfeed); 
     listEvents.setAdapter((ListAdapter) adapterNewsFeed); 


     try { 
      jsonObject = new JSONObject(json_string); 
      jsonArray = jsonObject.getJSONArray("server_response"); 

      int count = 0; 
      String EventTitle, EventDate, FriendName,friend_id,image; 
      while (count < jsonArray.length()) { 
       JSONObject JO = jsonArray.getJSONObject(count); 
       friend_id=JO.getString("friend_id"); 
       EventTitle = JO.getString("address"); 
       EventDate = JO.getString("DOB"); 
       FriendName = JO.getString("name"); 
       image=("http://howdysend.com/Howdy/uploads/" + friend_id + ".png"); 

       EventsElements eventsElements = new EventsElements(image,EventTitle, EventDate, FriendName); 



       adapterNewsFeed.add(eventsElements); 
       listEvents.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
        public void onItemClick(AdapterView<?> parent, View view, 
              int position, long id) { 

         EventsElements eventsElements =(EventsElements) adapterNewsFeed.getItem(position); 
         Intent i = new Intent(getActivity(), SendGreetings.class); 

         i.putExtra("user_id", eventsElements.getFriendName()); 
         startActivity(i); 


        } 
       }); 

Элементы класса

public class EventsElements { 
private String EventTitle, EventDate,FriendName; 
public String image; 


public EventsElements(String EventTitle,String EventDate,String FriendName, String image){ 
    this.setEventTitle(EventTitle); 
    this.setEventDate(EventDate); 
    this.setFriendName(FriendName); 

    this.setImage(image); 

} 
public String getEventTitle(){ 
    return EventTitle; 
} 
public void setEventTitle(String EventTitle) { 
    this.EventTitle = EventTitle; 
} 

public String getEventDate() { 
    return EventDate; 
} 

public void setEventDate(String EventDate) { 

    this.EventDate = EventDate; 
} 

public String getFriendName() { 
    return FriendName; 
} 

public void setFriendName(String FriendName) { 

    this.FriendName = FriendName; 
} 
public String getImage() { 
    return image; 
} 

public void setImage(String image) { 

    this.image = image; 
} 


} 

И AdapterNewsFeed

public class AdapterNewsFeed extends ArrayAdapter { 
List list=new ArrayList(); 
public AdapterNewsFeed(Context context, int resource) { 
    super(context,resource); 

} 
@Override 
public int getCount() { 
    return list.size(); 
} 
public void add(EventsElements object) { 
    super.add(object); 
    list.add(object); 
} 
@Override 
public Object getItem(int position) { 
    return list.get(position); 
} 

@Override 
public View getView(int position, View convertView, ViewGroup parent) { 
    View view; 
    view=convertView; 
    ElementsHolder elemetsHolder; 
    if (view==null){ 
     LayoutInflater layoutInflater = (LayoutInflater)this.getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
     view = layoutInflater.inflate(R.layout.custom_events_list_in_newsfeed,parent,false); 
     elemetsHolder=new ElementsHolder(); 
     elemetsHolder.EventTitle=(TextView) view.findViewById(R.id.EventTitle); 
     elemetsHolder.EventDate=(TextView) view.findViewById(R.id.EventDate); 
     elemetsHolder.FriendName=(TextView) view.findViewById(R.id.FriendName); 
     elemetsHolder.imageView=(ImageView)view.findViewById(R.id.FriendsUserImage); 
     view.setTag(elemetsHolder); 
    } 
    else 
    { 
     elemetsHolder=(ElementsHolder) view.getTag(); 

    } 
    EventsElements eventsElements=(EventsElements)this.getItem(position); 
    elemetsHolder.EventTitle.setText(eventsElements.getEventTitle()); 
    elemetsHolder.EventDate.setText(eventsElements.getEventDate()); 
    elemetsHolder.FriendName.setText(eventsElements.getFriendName()); 
    Picasso.with(getContext()).load(Uri.parse(eventsElements.getImage())).fit().into(elemetsHolder.imageView); 

    return view; 
} 





static class ElementsHolder 
{ 
    TextView EventTitle,EventDate,FriendName; 
    ImageView imageView; 
    String user_id; 
} 



} 

ответ

0

Ваше изображение из Url поэтому в основном вам не нужно Uri.parse(eventsElements.getImage(). Вместо этого просто установить свой адрес как этого

Picasso.with(getContext()).load(eventsElements.getImage()).fit().into(elemetsHolder.imageView); 

Для получения дополнительной информации ознакомьтесь

Надеется, что это помогает !!

+0

Я также пробовал это, но не работал. показывая те же результаты @ g2o – Bebo

+0

, пожалуйста, добавьте 'Log.d (TAG,« url »+ eventsElements.getImage());' перед вызовом Picasso и скажите мне, в чем результат. –

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