Java setOnItemLongClickListener在它之后调用setOnItemClickListener
我有一个列表,我想让用户删除一个项目使用长点击和编辑时点击 问题是,如果用户想删除某个项目(长时间单击该项目),我的应用程序将打开删除确认消息,同时还会打开编辑确认消息 当用户长时间单击列表项时,如何仅打开delete(setOnItemLongClickListener)消息Java setOnItemLongClickListener在它之后调用setOnItemClickListener,java,android,android-listview,Java,Android,Android Listview,我有一个列表,我想让用户删除一个项目使用长点击和编辑时点击 问题是,如果用户想删除某个项目(长时间单击该项目),我的应用程序将打开删除确认消息,同时还会打开编辑确认消息 当用户长时间单击列表项时,如何仅打开delete(setOnItemLongClickListener)消息 // DELETE list.setOnItemLongClickListener((parent, view, position, arg3) -> { Contacts contacts = queu
// DELETE
list.setOnItemLongClickListener((parent, view, position, arg3) -> {
Contacts contacts = queue.get(position);
AlertDialog.Builder adb=new AlertDialog.Builder(Read.this);
adb.setTitle("Delete?");
adb.setMessage("Are you sure you want to delete?");
adb.setNegativeButton("Cancel", null);
adb.setPositiveButton("Ok", (dialog, which) -> {
deleteContact(Read.this, contacts.phone, contacts.name);
mobileArray.remove(position);
adapter.notifyDataSetChanged();
});
adb.show();
return false;
});
// EDIT
list.setOnItemClickListener((parent, view, position, arg3) -> {
Contacts contacts = queue.get(position);
AlertDialog.Builder adb=new AlertDialog.Builder(Read.this);
adb.setTitle("Edit?");
adb.setMessage("Edit?");
adb.setNegativeButton("Cancel", null);
adb.setPositiveButton("Ok", (dialog, which) -> {
Log.d("edit:", contacts.name + contacts.id + contacts.phone + contacts.email);
});
adb.show();
});
虽然我不认为这种方法本身是可行的,但您也许应该利用它来执行多个操作,以获得更好的用户体验 无论如何,一个可能的解决方案可能是存储两个警报对话框的私有实例,如下所示:
private AlertDialog clickDiag;
private void function(){
AlertDialog.Builder adb=new AlertDialog.Builder(Read.this);
clickDiag = adb.show();
}
现在已经存储了实例,对话框中有一个有用的函数:
clickDiag.isShowing();
我想你现在已经明白了,它可以用来检查某个特定对话框的一个或另一个实例是否可见,所以不要显示另一个,反之亦然。只需将返回值改为true(source)@Ikazuchi哦,这似乎行得通。谢谢你的回答,我会努力的!谢谢你的回答。