字符串>在ArrayAdapter&LT删除项目;在ListView控件 [英] Remove item in ArrayAdapter<String> in ListView

查看:131
本文介绍了字符串>在ArrayAdapter&LT删除项目;在ListView控件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想删除ListView中单击项目。

  

的解决方案是使用一个String []的ArrayList代替;

下面是我的code:

公共类MyDialogFragment扩展DialogFragment {

  @覆盖
公共对话onCreateDialog(包savedInstanceState){

    AlertDialog.Builder建设者=新AlertDialog.Builder(getActivity());
    builder.setTitle(CritèresSupplémentaires);
    builder.setNegativeButton(取消,
            新DialogInterface.OnClickListener(){
                公共无效的onClick(DialogInterface对话,诠释whichButton){
                    OnCancel的(对话);
                }
            }
    );

    LayoutInflater充气=(LayoutInflater)getActivity()getSystemService(Context.LAYOUT_INFLATER_SERVICE)。
    查看MVIEW = inflater.inflate(R.layout.fragment_dialog,NULL);
    ListView控件mListView =(ListView控件)mView.findViewById(R.id.lvListe);

    的String [] mValues​​ = {方向,农布雷迪奥斯CHAMBRES,农布雷迪奥斯沙利德班,农布雷迪奥斯洗手间,洞天,停车,车库,花园};

    最后ArrayAdapter<字符串>适配器=新的ArrayAdapter<字符串>(getActivity(),android.R.layout.simple_list_item_1,mValues​​);
    mListView.setAdapter(适配器);
    mListView.setOnItemClickListener(新android.widget.AdapterView.OnItemClickListener(){
        @覆盖
        公共无效onItemClick(适配器视图<>母公司视图中查看,INT位置,长的id){
            字符串项=(字符串)parent.getItemAtPosition(位置);
            adapter.remove(adapter.getItem(位置));
            adapter.notifyDataSetChanged();
            Toast.makeText(getActivity(),你已经选择:+项目,Toast.LENGTH_SHORT).show();
        }
    });
    builder.setView(mListView);

    返回builder.create();
}
 

但adapter.remove(),使应用程序崩溃与此错误:

  

java.lang.UnsupportedOperationException

我应该怎么做,如果我想删除一个项目?

在此先感谢:)

解决方案

 的String [] mValues​​ = {方向,农布雷迪奥斯CHAMBRES,农布雷迪奥斯沙利德班, 农布雷迪奥斯洗手间,洞天,停车,车库,花园};

       最后的ArrayList<字符串>名单=新的ArrayList<字符串>(Arrays.asList(mValues​​));
        最后ArrayAdapter<字符串>适配器=新的ArrayAdapter<字符串>(getActivity(),android.R.layout.simple_list_item_1,清单);
        mListView.setAdapter(适配器);
        mListView.setOnItemClickListener(新android.widget.AdapterView.OnItemClickListener(){
            @覆盖
            公共无效onItemClick(适配器视图<>母公司视图中查看,INT位置,长的id){
                字符串项= list.get(位置);
                list.remove(位置);
                adapter.notifyDataSetChanged();
                Toast.makeText(getActivity(),你已经选择:+项目,Toast.LENGTH_SHORT).show();
            }
        });
 

I would like to delete a clicked item in ListView.

The solution is to use an ArrayList instead of a String[];

Here is my code:

public class MyDialogFragment extends 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();
}

But adapter.remove() makes the application crash with this error:

java.lang.UnsupportedOperationException

What should I do if I want remove an item ?

Thanks in advance :)

解决方案

      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();
            }
        });

这篇关于字符串&gt;在ArrayAdapter&LT删除项目;在ListView控件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆