我有一个ListView显示不同配置文件的名称,当用户按住项目时,活动显示alertDialog,如果用户按下确认按钮我要从listView中删除元素,从我的ArrayAdapter和来自我的ArrayList。 我知道onItemLongClick方法中的arg2表示所选项的索引,但我希望能够在正按钮的onClick方法中访问它。 有什么建议? 我的ArrayList被称为“ListaUtentiStringa”,ArrayAdapter是“profilesAdapter”,listView被称为listview。 对不起,我的英语不好。
listview.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
public boolean onItemLongClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setCancelable(true);
builder.setTitle("Vuoi davvero cancellare il profilo?");
builder.setPositiveButton("Si", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// How to remove the selected item?
}
});
builder.setNegativeButton("Annulla", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
}
});
AlertDialog alert = builder.create();
alert.show();
profilesAdapter.notifyDataSetChanged();
return true;
}
});
答案 0 :(得分:1)
这样做:
listview.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> parent, View view,
final int position, long id) {
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setCancelable(true);
builder.setTitle("Vuoi davvero cancellare il profilo?");
builder.setPositiveButton("Si", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// How to remove the selected item?
adapter.remove(adapter.getItem(position));
}
});
答案 1 :(得分:0)
试试这个..
使用ListaUtentiStringa
ArrayList
和profilesAdapter
adapter
作为全局变量。
builder.setPositiveButton("Si", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// How to remove the selected item?
ListaUtentiStringa.remove(arg2);
profilesAdapter.notifyDataSetChanged();
dialog.dismiss();
}
});
修改强>
public boolean onItemLongClick(AdapterView<?> arg0, View arg1, final int arg2, long arg3) {