Android 删除阵列适配器中的项目<;字符串>;在ListView中

Android 删除阵列适配器中的项目<;字符串>;在ListView中,android,listview,android-arrayadapter,Android,Listview,Android Arrayadapter,我想删除ListView中已单击的项目 解决方案是使用ArrayList而不是字符串[] 这是我的密码: 公共类MyDialogFragment扩展了DialogFragment{ @Override public Dialog onCreateDialog(Bundle savedInstanceState) { AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); builder.setT

我想删除ListView中已单击的项目

解决方案是使用ArrayList而不是字符串[]

这是我的密码:

公共类MyDialogFragment扩展了DialogFragment{

@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {

    AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
    builder.setTitle("Critères Supplémentaires");
    builder.setNegativeButton("Cancel",
            new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int whichButton) {
                    onCancel(dialog);
                }
            }
    );

    LayoutInflater inflater = (LayoutInflater) getActivity().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    View mView = inflater.inflate(R.layout.fragment_dialog, null);
    ListView mListView = (ListView) mView.findViewById(R.id.lvListe);

    String[] mValues = {"Orientation", "Nombre de Chambres", "Nombre de Salle de bains", "Nombre de toilettes", "Cave", "Parking", "Garage", "Jardin"};

    final ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_list_item_1, mValues);
    mListView.setAdapter(adapter);
    mListView.setOnItemClickListener(new android.widget.AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            String item = (String) parent.getItemAtPosition(position);
            adapter.remove(adapter.getItem(position));
            adapter.notifyDataSetChanged();
            Toast.makeText(getActivity(), "You selected : " + item, Toast.LENGTH_SHORT).show();
        }
    });
    builder.setView(mListView);

    return builder.create();
}
@覆盖
创建对话框上的公共对话框(Bundle savedInstanceState){
AlertDialog.Builder=新建AlertDialog.Builder(getActivity());
建筑商名称(“标准补充”);
builder.setNegativeButton(“取消”,
新建DialogInterface.OnClickListener(){
public void onClick(对话框接口对话框,int whichButton){
onCancel(对话);
}
}
);
LayoutFlater充气器=(LayoutFlater)getActivity().getSystemService(Context.LAYOUT\u充气器\u服务);
视图mView=充气机。充气(R.layout.fragment\u对话框,空);
ListView mListView=(ListView)mView.findViewById(R.id.lvListe);
字符串[]mValues={“方向”、“房间名称”、“房间名称”、“卫生间名称”、“洞穴”、“停车场”、“车库”、“Jardin”};
最终ArrayAdapter=新的ArrayAdapter(getActivity(),android.R.layout.simple_list_item_1,mValues);
mListView.setAdapter(适配器);
mListView.setOnItemClickListener(新的android.widget.AdapterView.OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
String item=(字符串)parent.getItemAtPosition(位置);
移除(adapter.getItem(位置));
adapter.notifyDataSetChanged();
Toast.makeText(getActivity(),“您选择了:”+项,Toast.LENGTH\u SHORT.show();
}
});
builder.setView(mListView);
返回builder.create();
}
但是adapter.remove()会导致应用程序崩溃,并出现以下错误:

java.lang.UnsupportedOperationException

如果我想删除某个项目,该怎么办


提前感谢:)

请这样做

mListView.setOnItemClickListener(new android.widget.AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                String item = (String) adapter.getItem(position);
                adapter.remove(adapter.getItem(position));
                adapter.notifyDataSetChanged();
                Toast.makeText(getActivity(), "You selected : " + item, Toast.LENGTH_SHORT).show();
            }
        });
mListView.setOnItemClickListener(新的android.widget.AdapterView.OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
字符串项=(字符串)适配器.getItem(位置);
移除(adapter.getItem(位置));
adapter.notifyDataSetChanged();
Toast.makeText(getActivity(),“您选择了:”+项,Toast.LENGTH\u SHORT.show();
}
});
String[]mValues={“方向”、“房间名称”、“房间名称”、“卫生间名称”、“洞穴”、“停车场”、“车库”、“Jardin”};
最终ArrayList=新的ArrayList(Arrays.asList(mValues));
最终ArrayAdapter=新的ArrayAdapter(getActivity(),android.R.layout.simple_list_item_1,list);
mListView.setAdapter(适配器);
mListView.setOnItemClickListener(新的android.widget.AdapterView.OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
字符串项=list.get(位置);
列表。删除(位置);
adapter.notifyDataSetChanged();
Toast.makeText(getActivity(),“您选择了:”+项,Toast.LENGTH\u SHORT.show();
}
});

可能有帮助吗?请发布完整的活动代码。尝试从数组中删除项目。已编辑。数组的意思是ArrayAdapter?因为我已经从中删除了项目。不,mValues。remove(position)不是我正在做的事?不完全是我做的事,但我必须使用arraylist.Thx
      String[] mValues = {"Orientation", "Nombre de Chambres", "Nombre de Salle de bains", "Nombre de toilettes", "Cave", "Parking", "Garage", "Jardin"};

       final ArrayList<String> list =new ArrayList<String>(Arrays.asList(mValues));  
        final ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_list_item_1, list);
        mListView.setAdapter(adapter);
        mListView.setOnItemClickListener(new android.widget.AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                String item = list.get(position);
                list.remove(position);
                adapter.notifyDataSetChanged();
                Toast.makeText(getActivity(), "You selected : " + item, Toast.LENGTH_SHORT).show();
            }
        });