字符串&gt;在ArrayAdapter&LT删除项目;在ListView控件 [英] Remove item in ArrayAdapter<String> in ListView
本文介绍了字符串&gt;在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&LT;字符串&GT;适配器=新的ArrayAdapter&LT;字符串&GT;(getActivity(),android.R.layout.simple_list_item_1,mValues);
mListView.setAdapter(适配器);
mListView.setOnItemClickListener(新android.widget.AdapterView.OnItemClickListener(){
@覆盖
公共无效onItemClick(适配器视图&LT;&GT;母公司视图中查看,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&LT;字符串&GT;名单=新的ArrayList&LT;字符串&GT;(Arrays.asList(mValues));
最后ArrayAdapter&LT;字符串&GT;适配器=新的ArrayAdapter&LT;字符串&GT;(getActivity(),android.R.layout.simple_list_item_1,清单);
mListView.setAdapter(适配器);
mListView.setOnItemClickListener(新android.widget.AdapterView.OnItemClickListener(){
@覆盖
公共无效onItemClick(适配器视图&LT;&GT;母公司视图中查看,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屋!
查看全文