Android ListView onitemclick监听器

时间:2012-11-29 06:52:07

标签: android android-listview onclicklistener onitemclicklistener onitemclick

当我点击我的列表视图项时,它会调用onitemclick监听器,但是当我单击项目时,它会同时调用initemclick和onitemlongclick监听器。如何解决长按时只调用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
    }
    }

4 个答案:

答案 0 :(得分:2)

请注意,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;
        }
    }

答案 1 :(得分:0)

在这种情况下,最好使用onClickListener()来获取List的单个视图而不是列表。 以及视图的onItemLongClickListener()。

答案 2 :(得分:0)

尝试使用这样的返回...

list.setOnItemClickListener(new 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;
}
}

答案 3 :(得分:0)

你只需要返回false告诉系统它不应该再发送事件。

  list.setOnItemLongClickListener(new OnItemLongClickListener() {

         public boolean onItemLongClick(AdapterView<?> arg0, View arg1,int arg2, long arg3) {
              //Do something
              return false;
        }