2017-06-06 40 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) –

相关问题