1

當我點擊我的列表視圖項時,它會調用onitemclick監聽器,但是當我單擊項時,它會調用initemclick和onitemLongclick監聽器。如何解決只有在長按時纔會調用onitemLongclick監聽器?Android ListView onitemclick監聽器

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

回答

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

請解釋一些代碼,我部分了解您的代碼.... – appukrb

+0

我已更新答案。請參閱答案中的代碼。 – TieDad

+0

感謝朋友其工作很好 – appukrb

0

在這種情況下,最好使用onClickListener()來代替列表的單個視圖。 而且對於Views的onItemLongClickListener()也是如此。

0

嘗試使用回這樣的...

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

哪裏是國旗宣言 – appukrb

0

你只需要返回false告訴系統,它不應該傳遞活動

list.setOnItemLongClickListener(new OnItemLongClickListener() { 

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