2

我的自定义项目中有BaseAdapter类。现在我有, 并且两个图像按钮(编辑和删除)在我的行中。当我从 GetView() 中删除查询并调用但那里没有发生任何事情时。请看下面的代码:ListViewListViewTextViewlistViewnotifyDataSetChanged();

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()不工作......请任何人告诉我我在哪里犯了错误?

4

2 回答 2

7

notifyDatasetChanged()当您在 中进行修改时将起作用itemDetailsrrayList。您只执行数据库操作,而不是从 ArrayList 中删除项目。也从 ArrayList 中删除项目。它会起作用的。

于 2013-06-27T12:14:21.720 回答
4

确保BaseAdapter方法

registerDataSetObserver(DataSetObserver observer) 
unregisterDataSetObserver(DataSetObserver observer) 

未被覆盖。

于 2014-10-31T17:02:04.997 回答