2013-06-27 4 views
2

У меня есть BaseAdapter Класс для ListView в моем Пользовательском ListView Проект. Теперь у меня есть TextView, а кнопки кнопок буксировки (Edit and Delete) находятся в моей строке listView. Когда я беру запрос на удаление из GetView() И звоню notifyDataSetChanged();, но ничего не происходит. Пожалуйста, смотрите ниже код:BaseAdapter NotifyDatasetChanged() getView() не работает

общественное мнение GetView (конечное положение INT, Вид convertView, ViewGroup parentView) {

ViewHolder holder ; 
    holder = new ViewHolder(); 
    convertView = mInflater.inflate(R.layout.local_jobs_list_row , null); 

    holder.job_name = (TextView) convertView.findViewById(R.id.txt_job_name); 
    holder.img_edit = (ImageButton) convertView.findViewById(R.id.icon_edit_job); 
    holder.img_delete = (ImageButton) convertView.findViewById(R.id.icon_delete_job); 

    convertView.setTag(holder); 

    holder.img_delete.setTag(itemDetailsrrayList.get(position).getLocal_job_id()); 
    holder.img_delete.setOnClickListener(new OnClickListener() { 
     @Override 
     public void onClick(final View v) { 

      db.open(); 
      db.deleteLocalJob(String.valueOf(v.getTag())); 
      db.close(); 
      notifyDataSetChanged(); 

     } 
    }); 

    holder.job_name.setText(itemDetailsrrayList.get(position).getLocal_job_name()); 


    return convertView; 
} 

Здесь notifyDatasetChanged() не работает ...... пожалуйста, кто-нибудь сказать мне, где я делаю mistack ?

ответ

7

notifyDatasetChanged() будет работать, если вы сделаете модификацию в itemDetailsrrayList. Вы выполняете только операцию с базой данных, не удаляя элемент из ArrayList. Удалите элемент из ArrayList. Это будет работать.

+0

его сделано большое спасибо @Brijesh – user2507920

4

Убедитесь BaseAdapter методы

registerDataSetObserver(DataSetObserver observer) 
unregisterDataSetObserver(DataSetObserver observer) 

не перезаписываются.