2014-09-14 3 views
-1

Привет, Я работаю над BaseAdapter, но всегда отображается мой последний элемент.Базовый адаптер не работает

public View getView(int position, View convertView, ViewGroup parent){ 
    SearchViewHolder orderViewHolder = null; 
    int type = getItemViewType(position); 

    if (convertView == null) { 
     orderViewHolder = new SearchViewHolder(); 

     convertView = inflater.inflate(R.layout.order_list_row, null); 
     orderViewHolder.setproductname((TextView) convertView 
       .findViewById(R.id.orderTitle));   
     } 
     convertView.setTag(orderViewHolder); 
    } else { 
     orderViewHolder = (SearchViewHolder)convertView.getTag(); 
    } 
    for (int i = 0 ; i<msearchproductname.size();i++) { 
     System.out.println("@@ value of productname !!!!:"+msearchproductname.get(i)); 
     orderViewHolder.getproductname().setText(""+msearchproductname.get(i)); 
    } 

    return convertView;} 

Даже выход

System.out.println("@@ value of productname !!!!:"+msearchproductname.get(i)); 

такой же, как мы хотим.

Что здесь происходит неправильно. В textView всегда отображается последний элемент. Пожалуйста, помогите мне. Спасибо заранее всем.

+0

что делает эту линию печати Log.i («отладки», msearchproductname.size); ? –

+0

msearchproductname.size - это список, значение которого 5 – DJhon

+0

Вам нужно очистить вложенный код. Похоже, там есть что-то дополнительное. Это также трудно читать, когда вещи помечены случайным образом. –

ответ

1

ок вам необходимо удалить петлю и сделать это таким образом

public View getView(int position, View convertView, ViewGroup parent){ 
    SearchViewHolder orderViewHolder = null; 
    int type = getItemViewType(position); 
    if (convertView == null) { 
     orderViewHolder = new SearchViewHolder(); 
     convertView = inflater.inflate(R.layout.order_list_row, null); 
     orderViewHolder.setproductname((TextView)convertView 
      .findViewById(R.id.orderTitle)); 
     convertView.setTag(orderViewHolder); 
    } else { 
     orderViewHolder = (SearchViewHolder)convertView.getTag(); 
    } 

    orderViewHolder.getproductname().setText(""+msearchproductname.get(position)); 
    return convertView; 
} 
+0

Спасибо за отзыв orderViewHolder.getproductname(). SetText ("" + msearchproductname.get (i)); это лучше или orderViewHolder.getproductname(). SetText ("" + msearchproductname.get (position)); – DJhon

+0

этот one orderViewHolder.getproductname(). SetText ("" + msearchproductname.get (position)); –

+0

Я проверяю его ... Позвольте вам kknow – DJhon

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