2013-12-21 72 views
0

我有一個列表視圖與setOnItemClickListenersetOnItemLongClickListener。 由於1年沒有問題。但與Android 4.4我會得到一個LongClick兩個方法執行。Android 4.4 setOnItemLongClickListener錯誤?

例如:

lv.setOnItemClickListener(new OnItemClickListener() 
     { 
     public void onItemClick(AdapterView<?> arg0,View arg1,int arg2, long arg3){ 
      ListView lv = (ListView) findViewById(R.id.listView1);  
      final String Name = lv.getAdapter().getItem(arg2).toString();    

      // Make sth on click 
     }}); 


     lv.setOnItemLongClickListener(new OnItemLongClickListener() { 
      @Override 
      public boolean onItemLongClick(AdapterView<?> arg0, View arg1, 
        final int arg2, long arg3) { 
      // Make sth on longclick 
      } 
     }); 

在長按兩者都將被執行。這是我的代碼中的錯誤還是問題?

+0

「長時間點擊兩次都會執行」。 nope一個將被執行,這取決於點擊和這個'ListView lv =(ListView)findViewById(R.id.listView1);'不是必需的可以使用'arg0' – Raghunandan

回答

2

您的代碼沒有問題,只是您的onItemLongClick布爾值沒有返回值。將其更改爲:

lv.setOnItemLongClickListener(new OnItemLongClickListener() { 
       @Override 
       public boolean onItemLongClick(AdapterView<?> arg0, View arg1, 
         final int arg2, long arg3) { 
       // Make sth on longclick 

       return true; 
       } 
      }); 

這將防止長按上自注意一下做進一步的行動,一個longclick仍然是一個點擊這就是爲什麼onclicklistener觸發此事件。

+0

謝謝,在我的代碼中我hade'返回false'。把它改成'return true'吧! – Oli

相關問題