我想使用一个ListView从OnItemLongClickListener中删除一个项目。
这是我的代码,使一个AlertDialog出现时,我OnLongClick一个项目。
我还需要在删除项目时使用哪些代码?
public class DeleteItem extends Activity {
ListView list;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
list = (ListView) findViewById(R.id.listView);
list.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> arg0, View arg1,
int arg2, long arg3) {
AlertDialog.Builder alert = new AlertDialog.Builder(DeleteItem.this);
alert.setMessage("Are you sure you want to delete this?");
alert.setCancelable(false);
alert.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
//Here I need the delete code
}
});
alert.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
}
});
return false;
}
});
}
}发布于 2014-02-11 15:56:13
ArrayAdapter有remove(int index)方法
list.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
@Override
public boolean onItemLongClick(final AdapterView<?> arg0, View arg1,
final int position, long arg3) {
AlertDialog.Builder alert = new AlertDialog.Builder(DeleteItem.this);
alert.setMessage("Are you sure you want to delete this?");
alert.setCancelable(false);
alert.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
ArrayAdapter yourArrayAdapter = (ArrayAdapter) arg0.getAdapter();
yourArrayAdapter.remove(position);
yourArrayAdapter.notifyDataSetChanged();
}
});
alert.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
}
});
return false;
}
});使用适配器的一般类型调整强制转换。只有当您向适配器提供元素集合时,它才能工作。如果提供了Array,它将引发异常
https://stackoverflow.com/questions/21706521
复制相似问题