2015-12-07 2 views
-1

Я использую ArrayAdapter в listview с convertview. Но когда он прокручивается, некоторые предметы дублируются. Не могли бы вы помочь мне решить проблему? спасибо основной код функции GetView:Элементы списка просмотра дублируются при прокрутке

 View view; 
     if (null != convertView) { 
      view = convertView; 
     } else { 
      view = getActivity().getLayoutInflater().inflate(R.layout.item_fans_task, null); 
      taskImg = (ImageView) view.findViewById(R.id.task_img); 
      taskTitleText = (TextView) view.findViewById(R.id.task_title_text); 
      taskContentText = (TextView) view.findViewById(R.id.task_content_text); 
      taskProcessImg = (ImageView) view.findViewById(R.id.task_process_img); 
      shareText = (TextView) view.findViewById(R.id.share_text); 
      taskType = (TextView) view.findViewById(R.id.task_type); 
     } 
     Tasks task = getItem(position); 

     taskTitleText.setText(task.getTitle()); 
     StringBuilder builder = new StringBuilder(); 
     builder.append("已将文章分享到朋友圈,并获得" + task.getReaders() +"次阅读\n"); 
     builder.append("已分享" + task.getTsum() + "次" + " 剩余" + task.getSynum() + "次"); 
     taskContentText.setText(builder); 

...

 return view; 
+0

также передайте свой код адаптера. – dex

+0

Возможный дубликат http://stackoverflow.com/questions/8261376/duplicated-entries-in-listview – DGN

ответ

1

Вы назначаете ваш "UI" -Variables только тогда, когда нет вида на переработку (вид == NULL). Возможно, следует использовать шаблон ViewHolder. На данный момент, следующее должно быть в порядке:

View view; 
    if (null != convertView) { 
     view = convertView; 
    } else { 
     view = getActivity().getLayoutInflater().inflate(R.layout.item_fans_task, null); 
    } 
    taskImg = (ImageView) view.findViewById(R.id.task_img); 
    taskTitleText = (TextView) view.findViewById(R.id.task_title_text); 
    taskContentText = (TextView) view.findViewById(R.id.task_content_text); 
    taskProcessImg = (ImageView) view.findViewById(R.id.task_process_img); 
    shareText = (TextView) view.findViewById(R.id.share_text); 
    taskType = (TextView) view.findViewById(R.id.task_type); 
+0

Он работает, спасибо за вашу помощь! –

0

Ваша линия

if (null != convertView) { 
    view = convertView; 
} 

вызывает эту ошибку. Просто исправить, удалите этот код. Если вы хотите использовать ListView Scrolling Smooth с помощью ViewHolder. Прочтите этот урок для более подробной информации. http://www.vogella.com/tutorials/AndroidListView/article.html

+0

Это работает для меня. Спасибо за вашу помощь! :) –

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