2017-06-06 55 views
-1

我已經在我的項目中使用網格視圖。當我快速點擊網格視圖項時,它會一次調用兩次相同的方法。但我慢慢點擊,然後完美地工作。請幫助我out.in這種方法我打電話給對話框,當我點擊它打開對話框的項目,但當我快速點擊該項目,然後打開對話框兩次。我應該怎麼做來解決這個雖然快速點擊gridview項,同樣的方法被稱爲兩次一次

grid.setOnItemClickListener(new AdapterView.OnItemClickListener() { 

    @Override 
    public void onItemClick(AdapterView<?> parent, final View view, final int position, long id) { 

    showDialog(position); 

    } 
}); 

回答

0
i have solution for opening twice time method.i can define the below condition throgh sloved it 

grid.setOnItemClickListener(new AdapterView.OnItemClickListener() { 

      private long mLastClickTime = 0; 
public void onItemClick(AdapterView<?> parent, View view, final int position, long id) { 
        if (SystemClock.elapsedRealtime() - mLastClickTime < 1000) 
{ 
         return; 
        } 
        mLastClickTime = SystemClock.elapsedRealtime(); 

        grideProductAdd(position); 




      } 
}); 
2

您可以使用此代碼不允許多個速度點擊,而不是你onclicklistener。

public abstract class SingleClickListener implements View.OnClickListener { 
    private static final long THRESHOLD_MILLIS = 500L; 
    private long lastClickMillis; 

    @Override 
    public void onClick(View v) { 
     long now = SystemClock.elapsedRealtime(); 
     if (now - lastClickMillis > THRESHOLD_MILLIS) { 
      onClicked(v); 
      lastClickMillis = 0; 
     } else { 
      lastClickMillis = now; 
     } 
    } 

    public abstract void onClicked(View v); 
} 

,而不是正常onclicklistener使用這

stage1_nxt.setOnClickListener(new SingleClickListener() { 
+0

我加入if條件裏面的方法? – Radhika

+0

但我必須使用grid.setonitemclickListner – Radhika

+0

grid.setonitemclicklistener(new singleclicklistener) –