2014-04-25 2 views
-2

List를 전달하는 ListAdapter가 있습니다. 이를 반복하여 TextViews 및 ImageViews에 값을 할당하려고하면 목록의 마지막 항목의 요소 만 표시됩니다.ListView는 행 전체에서 마지막 요소 만 표시합니다.

여기 내 코드입니다 : -

public class LazyAdapter extends BaseAdapter 
{ 
    private Activity activity; 
    private List<News> data; 
    private static LayoutInflater inflater = null; 
    public Context myContext; 
    public ImageLoader imageLoader; 
    public Context mContext; 
    public ProgressDialog pDialog; 
    String myTitle, description, pubdate, pubName, mycomments, myviews,bitmapurl; 
    static class LazyViewHolder 
    { 
     TextView title; 
     TextView description; 
     ImageView thumb_image; 
     WebView imageWebView; 
     TextView pubDate; 
    } 
     public LazyAdapter(Context ctx, List<News> newsListy) 
     { 
      mContext = ctx; 
      data=newsListy; 
      inflater =LayoutInflater.from(ctx); 

      imageLoader=new ImageLoader(ctx); 
     } 
    @Override 
    public int getCount() 
    { 
     // TODO Auto-generated method stub 
     return data.size(); 
    } 

    @Override 
    public Object getItem(int position) 
    { 
     // TODO Auto-generated method stub 
     return data.get(position); 
    } 

    @Override 
    public long getItemId(int position) 
    { 
     // TODO Auto-generated method stub 
     return position; 
    } 

    @Override 
    public boolean isEnabled(int position) 
    { 
     // TODO Auto-generated method stub 
     return true; 
    } 
    @Override 
    public View getView(int position, View convertView, ViewGroup parent) 
    { 
     View vi=convertView; 
     LazyViewHolder viewHolder; 
     if(convertView==null) 
      vi = inflater.inflate(com.zevenpooja.attini.R.layout.list_row,null); 

     viewHolder = new LazyViewHolder(); 

     viewHolder.title = (TextView)vi.findViewById(com.zevenpooja.attini.R.id.title); // title 
     viewHolder.description = (TextView)vi.findViewById(com.zevenpooja.attini.R.id.description); // artist name 
     viewHolder.pubDate = (TextView)vi.findViewById(com.zevenpooja.attini.R.id.txtPubDate); 


    // List<News> song = new ArrayList<News>(); 
     for (int i = 0; i < data.size(); i++) 
     { 
      myTitle = data.get(i).getTitle().toString(); 
      description = data.get(i).getDescription().toString(); 
      bitmapurl = data.get(i).getNewsBigImage().toString(); 
      pubdate = data.get(i).getPublishedDate().toString(); 





     StringBuilder sb = new StringBuilder(myTitle); 

     int j = 0; 
     while ((j = sb.indexOf(" ", j + 40)) != -1) { 
      sb.replace(j, j + 1, "\n"); 
     } 

     viewHolder.title.setText(sb.toString()); 

     //DEscription 
     description = description.substring(0, Math.min(description.length(), 50)); 
     viewHolder.description.setText(description); 

     //Date 
     final String OLD_FORMAT = "yyyy-MM-dd'T'HH:mm:ss'Z'"; 
     final String NEW_FORMAT = "MMMM dd, yy"; 

     String newDate =""; 

     SimpleDateFormat sdf = new SimpleDateFormat(OLD_FORMAT); 
     try 
     { 
      Date d = sdf.parse(pubdate); 
      sdf.applyLocalizedPattern(NEW_FORMAT); 
      newDate = sdf.format(d); 
      viewHolder.pubDate.setText(newDate); 
     } 
     catch (java.text.ParseException e) 
     { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     }  

     //IMAGE 
     viewHolder.thumb_image=(ImageView)vi.findViewById(com.zevenpooja.attini.R.id.list_image); // thumb image 
      imageLoader.DisplayImage(bitmapurl, viewHolder.thumb_image); 
     } 


     return vi; 
    } 
+0

귀하의 목록보기는 어디입니까? – Sree

답변

0

for 루프를 제거하고 data.get(position)data.get(i)를 교체합니다.

0

귀하의 모든 데이터 요소를 반복하여 제거하십시오. 코드 아래

public View getView(int position, View convertView, ViewGroup parent) { 
    final News news = data.get(position); 
    // ... 
} 
0

시도 : -

의 getView는에

View row = convertView; 
    // get adapter value 
    News newsListy = this.data.get(i) 
    ViewHolder viewHolder = null; 
    if (row == null) 
    { 
     row = inflater.inflate(R.layout.item_post_wall, parent, false); 
     viewHolder = new ViewHolder(); 


     row.setTag(viewHolder); 
    } 


    viewHolder = (ViewHolder) row.getTag(); 
0

오류가주기 위해 : 당신의 코드는 사이클 평가입니다. 마지막에는 myTitle이 dataList 마지막 항목 데이터이기도합니다.

+0

이 정보는 귀하에게 도움이 될 수 있습니까? – tagmic

관련 문제