我有一个关于从listView中删除项目并在android中通知更改的查询

我有一个关于从listView中删除项目并在android中通知更改的查询,android,listview,android-fragments,Android,Listview,Android Fragments,我必须在android中从listView中删除项目并通知其更改。我从StackOverflow获得了一些解决方案,但无法使其工作 这部分代码显示了我如何初始化列表视图和从DAO类调用函数 listvcard=(ListView) rootView.findViewById(R.id.listofvcard); DAO dao = new DAO(getActivity()); vcardadapter adapter = new vcardadapter

我必须在android中从listView中删除项目并通知其更改。我从StackOverflow获得了一些解决方案,但无法使其工作

这部分代码显示了我如何初始化列表视图和从DAO类调用函数

listvcard=(ListView) rootView.findViewById(R.id.listofvcard);

         DAO dao = new DAO(getActivity());

         vcardadapter adapter = new vcardadapter(getActivity(), dao.getUser());

        listvcard.setAdapter(adapter);

        return rootView;
    }

    private class vcardadapter extends BaseAdapter {

        private Context context;
        private List<VcardVO> listvcardVO;


        private LayoutInflater inflater;

        public vcardadapter(Context c, List<VcardVO> list) {
            // TODO Auto-generated constructor stub
            this.context = c;
            this.listvcardVO = list;
            inflater = (LayoutInflater) getActivity().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        }
listvcard=(ListView)rootView.findViewById(R.id.listofvcard);
DAO=新DAO(getActivity());
vcardadapter=newvCardAdapter(getActivity(),dao.getUser());
listvcard.setAdapter(适配器);
返回rootView;
}
私有类vcardadapter扩展BaseAdapter{
私人语境;
私有列表listvcardVO;
私人充气机;
公共vcardadapter(上下文c,列表){
//TODO自动生成的构造函数存根
this.context=c;
this.listvcardVO=列表;
充气器=(LayoutInflater)getActivity().getSystemService(Context.LAYOUT\u充气器\u SERVICE);
}
============================================================================

这部分代码显示了如何使用ALertlayout从listView中删除项

h.delete.setOnClickListener(new OnClickListener() {

                @Override
                public void onClick(View v) {
                    // TODO Auto-generated method stub
                    deletepopup();
                }
                private void deletepopup() {
                    // TODO Auto-generated method stub
                    AlertDialog.Builder alert = new AlertDialog.Builder(getActivity());
                    alert.setTitle("Delete this vCard?");

                    alert.setCancelable(false);
                    //alert.setIcon(R.drawable.vcardicon2);
                    alert.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {

                        @Override
                        public void onClick(DialogInterface dialog, int which) {
                            // TODO Auto-generated method stub

                        }
                    });
                    alert.setPositiveButton("Delete", new DialogInterface.OnClickListener() {

                        @Override
                        public void onClick(DialogInterface dialog, int which) {
                            // TODO Auto-generated method stub


                            ArrayAdapter<String> myAdapter = (ArrayAdapter<String>)listvcard.getAdapter();
                            myAdapter.remove(myAdapter.getItem(position));
                            myAdapter.notifyDataSetChanged();



                        }
                    });
                    AlertDialog dialog = alert.create();
                    dialog.show();
                }
            });
h.delete.setOnClickListener(新的OnClickListener(){
@凌驾
公共void onClick(视图v){
//TODO自动生成的方法存根
deletepopup();
}
私有void deletepopup(){
//TODO自动生成的方法存根
AlertDialog.Builder alert=新建AlertDialog.Builder(getActivity());
alert.setTitle(“删除此vCard?”);
警报。可设置可取消(错误);
//警报设置图标(R.drawable.vcardicon2);
alert.setNegativeButton(“取消”,新建DialogInterface.OnClickListener()){
@凌驾
public void onClick(DialogInterface dialog,int which){
//TODO自动生成的方法存根
}
});
alert.setPositiveButton(“删除”,新建DialogInterface.OnClickListener()){
@凌驾
public void onClick(DialogInterface dialog,int which){
//TODO自动生成的方法存根
ArrayAdapter myAdapter=(ArrayAdapter)listvcard.getAdapter();
移除(myAdapter.getItem(position));
myAdapter.notifyDataSetChanged();
}
});
AlertDialog=alert.create();
dialog.show();
}
});
“ArrayAdapter myAdapter=(ArrayAdapter)listvcard.getAdapter();”行中出现错误

它说“vcardadapter不能强制转换为arrayadapter”

请回复!!我正试图在3天内解决此问题。

试试这个

在下面给出的适配器中添加从listview中删除项目的方法:

public removeItem(int position){
         listvcardVO.remove(position);
         notifyDataSetChanged();
}
并从“删除”按钮调用该方法,单击:

adapter.removeItem(postion);

我上面声明的“适配器”在删除按钮的onClickListener中不可访问。我创建了方法“removeItem”,如何全局声明它。如果我将声明为公共,它将显示“错误”。它告诉“移除无效修饰符”谢谢,先生,但我使用listcardVO.Remove(项)完成了此操作.但我还有一个问题,如何在listView inn android中从数据库中删除项目。先生,您能告诉我“如何在listView inn android中从数据库中删除项目”吗