删除 ArrayAdapter<String> 中的项目在列表视图中 [英] Remove item in ArrayAdapter<String> in ListView
本文介绍了删除 ArrayAdapter<String> 中的项目在列表视图中的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想删除 ListView 中点击的项目.
I would like to delete a clicked item in ListView.
解决方案是使用 ArrayList 而不是 String[];
这是我的代码:
公共类 MyDialogFragment 扩展了 DialogFragment {
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();
}
但是adapter.remove() 使应用程序崩溃并出现此错误:
But adapter.remove() makes the application crash with this error:
java.lang.UnsupportedOperationException
java.lang.UnsupportedOperationException
如果我想删除一个项目,我该怎么做?
What should I do if I want remove an item ?
提前致谢:)
推荐答案
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();
}
});
这篇关于删除 ArrayAdapter<String> 中的项目在列表视图中的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文