2011-09-21 145 views
2

在我的应用程序中,我使用基本适配器来显示列表视图上的大洲。我想在列表上显示2个文本视图和1个图像视图。图像视图显示在标志条件上。对于第1条时间它正确地显示一切。但如果我滚动我的列表意外的行为我们那里。图像视图显示在其标志是假的行。下面是我的代码... 请帮助我!滚动列表视图

public class MyAdapter extends BaseAdapter 
    { 
     private Context context; 
     Views viewsList; 
     private ArrayList<Views> selectedItems = new ArrayList<Views>(); 

     public MyAdapter(Context c, int textViewResourceId, 
       ArrayList<Views> list) { 
      super(); 
      this.context=c; 

      this.selectedItems=list; 
     } 


     public int getCount() { 

      return selectedItems.size(); 
     } 

     public Object getItem(int position) { 

      return selectedItems.get(position); 
     } 

     public long getItemId(int position) { 

      return position; 
     } 

     public View getView(int position, View convertView, ViewGroup parent) { 
      viewsList=selectedItems.get(position); 
      myAdapter.notifyDataSetChanged(); 
      View v=convertView; 
      ImageView tipImageView; 
      LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
      TextView bTitle,textVies,likeView; 
      if (v == null) { 

       v = inflater.inflate(R.layout.tips_viwes_and_like_gui, null); 

       bTitle = (TextView) v.findViewById(R.id.textname); 
       bTitle.setText(viewsList.getName()); 

       if(viewsList.getContaisImage().contains("1")) 
       { 
        tipImageView=(ImageView)v.findViewById(R.id.setImageId); 
        tipImageView.setImageResource(R.drawable.tip_image); 
       } 
       else if(viewsList.getContaisImage().contains("0")) 
       { 
        tipImageView=null; 
       } 

       textVies = (TextView) v.findViewById(R.id.textviews); 
       textVies.setText("Views :"+viewsList.getViewsId()); 

       likeView=(TextView) v.findViewById(R.id.textLike); 
       likeView.setText("Like :"+viewsList.getLike()); 
      } 
      return v; 
     } 
    } 
+0

一切都在'如果(V == NULL)'。保留第一行是'v = inflater.inflate(R.layout.tips_viwes_and_like_gui,null);'并且删除所有将它从** if语句中删除** –

+0

@ Sherif ..感谢您的回应....但没有运气.... – android

回答

1

这是很常见的问题,你将不得不在此线的其他部分 尝试这种方式

public View getView(int position, View convertView, ViewGroup parent) { 
      viewsList=selectedItems.get(position); 
      myAdapter.notifyDataSetChanged(); 
      View v=converView; 
      ImageView tipImageView; 
      LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
      TextView bTitle,textVies,likeView; 

      if (v == null) { 
       v = inflater.inflate(R.layout.tips_viwes_and_like_gui, null);  

       bTitle = (TextView) v.findViewById(R.id.textname); 
       textVies = (TextView) v.findViewById(R.id.textviews); 
       likeView=(TextView) v.findViewById(R.id.textLike); 
       tipImageView=(ImageView)v.findViewById(R.id.setImageId); 
      } 

      bTitle.setText(viewsList.getName()); 
      likeView.setText("Like :"+viewsList.getLike()); 
      textVies.setText("Views :"+viewsList.getViewsId()); 
      tipImageView.setImageResource(R.drawable.tip_image); 

      if(viewsList.getContaisImage().contains("0")){ 
       tipImageView.setVisibile(ImageView.GONE); 
      }else{ 
       tipImageView.setVisibile(ImageView.VISIBLE); 
      } 

      return v; 
     } 
+0

@Pratik ....感谢你sooo多....现在工作正常... !!! – android