Android:如何在自定义SimpleAdapter中删除项目后刷新列表

5

请问我如何在自定义SimpleAdapter中删除map列表项后刷新ListView项?

我已成功使用list.remove(position)实现了删除列表项,但当我尝试调用list.notifyAll()函数时,它会给我一个错误消息,例如"java.lang.IllegalMonitorStateException: object not locked by thread before notifyAll()"。

希望您能帮助我。这是自定义SimpleAdapter的代码:

public class DeleteAdapter extends SimpleAdapter {

    Context context;
    List<? extends Map<String, ?>> list;
    int resource;
    String[] from;
    int[] to;

    public FDeleteAdapter(Context context, List<? extends Map<String, ?>> data,
            int resource, String[] from, int[] to) {
        super(context, data, resource, from, to);

        this.context = context;
        this.list = data;
        this.resource = resource;
        this.from = from;
        this.to = to;
        // TODO Auto-generated constructor stub
    }

    @Override
    public View getView(final int position, View convertView, ViewGroup parent) {

        final View row = super.getView(position, convertView, parent);

        final Button delete = (Button) row.findViewById(R.id.deletebut);
        final TextView title = (TextView) row.findViewById(R.id.label);

        delete.setOnClickListener(new OnClickListener() {

            public void onClick(View view) {

                deleteDialog xdialog = new deleteDialog(context, "Delete? ", position) {

                    @Override
                    public boolean onOkClicked() {

                        list.remove(position);
                        list.notifyAll();

                        return true;
                    }
                };
                xdialog.show();
            }
        });

        return row;
    }
};

非常感谢您的帮助。

2个回答

5

但是它显示给我“无法在类型中对非静态方法notifyDataSetChanged()进行静态引用”...你能教我如何解决吗? - johnteow
1
使用 DeleteAdapter.this.notifyDataSetChanged() - inazaruk
android.widget.ListAdapter中不存在notifyDataSetChanged()。 - Shajeel Afzal

0
使用

 this.notifyDataSetChange();

notifyAll() 会告诉其他适配器或线程它已经完成了更新或工作。 - coder_For_Life22
但它显示了“无法对类型非静态方法notifyDataSetChanged()进行静态引用”...你能教我如何解决吗? - johnteow

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接