Android ListView和McClick侦听器
当我单击我的列表视图项时,它调用onitemclick侦听器,但当我单击长项时,它同时调用initemclick和onitemlongclick侦听器。如何解决长按时只调用长单击侦听器的问题Android ListView和McClick侦听器,android,android-listview,onclicklistener,onitemclicklistener,onitemclick,Android,Android Listview,Onclicklistener,Onitemclicklistener,Onitemclick,当我单击我的列表视图项时,它调用onitemclick侦听器,但当我单击长项时,它同时调用initemclick和onitemlongclick侦听器。如何解决长按时只调用长单击侦听器的问题 list.setOnItemClickListener(new OnItemClickListener() { public void onItemClick(AdapterView<?> arg0, View arg1, int arg
list.setOnItemClickListener(new OnItemClickListener()
{
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
//my code
}
});
list.setOnItemLongClickListener(new OnItemLongClickListener() {
public boolean onItemLongClick(AdapterView<?> arg0, View arg1,int arg2, long arg3) {
//my code
}
}
list.setOnItemClickListener(新的OnItemClickListener()
{
公共链接(AdapterView arg0、视图arg1、内部arg2、,
长arg3){
//我的代码
}
});
list.setOnItemLongClickListener(新的OnItemLongClickListener(){
公共布尔值长单击(AdapterView arg0、视图arg1、整型arg2、长型arg3){
//我的代码
}
}
请注意,onItemLongClick()有一个布尔返回值。如果不希望调用onItemClick,请使onItemLongClick()返回true
list.setOnItemLongClickListener(new OnItemLongClickListener() {
public boolean onItemLongClick(AdapterView<?> arg0, View arg1,int arg2, long arg3) {
//....
// Above are your code.
// Return true for this method as below.
return true;
}
}
list.setOnItemLongClickListener(新的OnItemLongClickListener(){
公共布尔值长单击(AdapterView arg0、视图arg1、整型arg2、长型arg3){
//....
//以上是您的代码。
//此方法返回true,如下所示。
返回true;
}
}
在这种情况下,最好对列表的各个视图而不是列表使用onClickListener()。
对于视图的onItemLongClickListener()。试着像这样使用return list.setOnItemClickListener(新的OnItemClickListener() {
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
}
});
list.setOnItemLongClickListener(new OnItemLongClickListener() {
public boolean onItemLongClick(AdapterView<?> arg0, View arg1,int arg2, long arg3) {
return true;
}
}
public void onItemClick(适配器视图arg0、视图arg1、内部arg2、,
长arg3){
}
});
list.setOnItemLongClickListener(新的OnItemLongClickListener(){
公共布尔值长单击(AdapterView arg0、视图arg1、整型arg2、长型arg3){
返回true;
}
}
您只需返回false,告诉系统它不应该再传递事件
list.setOnItemLongClickListener(new OnItemLongClickListener() {
public boolean onItemLongClick(AdapterView<?> arg0, View arg1,int arg2, long arg3) {
//Do something
return false;
}
list.setOnItemLongClickListener(新的OnItemLongClickListener(){
公共布尔值长单击(AdapterView arg0、视图arg1、整型arg2、长型arg3){
//做点什么
返回false;
}
国旗声明在哪里