1

リストビューアイテムをクリックすると、onitemclickリスナーが呼び出されますが、item longをクリックすると、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

4 に答える 4

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;
        }
    }
于 2012-11-29T06:59:28.637 に答える
0

これ以上イベントを配信しないようにシステムに通知するには、falseを返す必要があります。

  list.setOnItemLongClickListener(new OnItemLongClickListener() {

         public boolean onItemLongClick(AdapterView<?> arg0, View arg1,int arg2, long arg3) {
              //Do something
              return false;
        }
于 2012-11-29T07:21:42.633 に答える
0

このような場合、リストの代わりにリストの個々のビューに onClickListener() を使用することをお勧めします。また、ビューの onItemLongClickListener() についても。

于 2012-11-29T07:01:42.173 に答える
0

このように 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;
}
}
于 2012-11-29T07:14:23.577 に答える