Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/225.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android ListView和McClick侦听器_Android_Android Listview_Onclicklistener_Onitemclicklistener_Onitemclick - Fatal编程技术网

Android ListView和McClick侦听器

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

当我单击我的列表视图项时,它调用onitemclick侦听器,但当我单击长项时,它同时调用initemclick和onitemlongclick侦听器。如何解决长按时只调用长单击侦听器的问题

     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;
}

国旗声明在哪里