我的自定义BaseAdapter
项目中ListView
有ListView
个班级。现在我有TextView
,并且拖动图像按钮(编辑和删除)位于我的listView
行中。当我是火时删除查询从GetView()并调用notifyDataSetChanged();
但没有发生任何事情。请参阅以下代码:
public View getView(final int position,View 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()
没有工作......请有人告诉我我在哪里犯错误?
答案 0 :(得分:7)
notifyDatasetChanged()
进行修改时, itemDetailsrrayList
将有效。您只进行数据库操作而不是从ArrayList中删除项目。也从ArrayList移除项目。它会起作用。
答案 1 :(得分:4)
确保BaseAdapter
方法
registerDataSetObserver(DataSetObserver observer)
unregisterDataSetObserver(DataSetObserver observer)
没有被覆盖。