2017-06-06 6 views
-1

J'ai utilisé la vue grille dans mon projet. Lorsque je clique sur l'élément de la grille, il appelle deux fois la même méthode. Mais je clique lentement alors ça fonctionne parfaitement. S'il vous plaît aidez-moi. Dans cette méthode, j'appelle la boîte de dialogue lorsque je clique sur l'élément, il ouvre la boîte de dialogue, mais quand je clique rapidement sur l'élément, puis la boîte de dialogue ouverte deux fois. Que dois-je faire pour résoudre ceTout en cliquant rapidement sur l'élément de gridview, la même méthode a été appelée deux fois fois

grid.setOnItemClickListener(new AdapterView.OnItemClickListener() { 

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

    showDialog(position); 

    } 
}); 

Répondre

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

Vous pouvez utiliser ce code qui ne permet pas à plusieurs vitesses au lieu de clics votre 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); 
} 

et au lieu de l'utilisation de onclicklistener normale cette

stage1_nxt.setOnClickListener(new SingleClickListener() { 
+0

i ajouter la méthode dans la condition if? – Radhika

+0

mais je dois utiliser grid.setonitemclickListner – Radhika

+0

grid.setonitemclicklistener (nouveau singleclicklistener) –