2016-04-26 2 views
0

J'ai le code suivant. Quand je le mets dans le ACTION_DOWN ça marche, quand je le mets dans le ACTION_UP n'est pas, qu'est-ce que je fais mal?Android ProgressDialog.show n'apparaissant pas

button1.setOnTouchListener(new View.OnTouchListener() { 
    public boolean onTouch(View view, MotionEvent event) { 
     if (event.getAction() == android.view.MotionEvent.ACTION_DOWN) { 

      //it works here 
      // progress = ProgressDialog.show(ExampleAct.this,"Processing...","Preparing file", true); 

     } else if (event.getAction() == android.view.MotionEvent.ACTION_UP) { 
       //It doesn't work here 
       progress = ProgressDialog.show(ExampleAct.this,"Processing...","Preparing file", true); 
      //Other code here is working fine 
     } 
     return true; 
    } 

}); 

Répondre

0

Essayez d'ajouter ACTION_CANCEL dans le cas de ACTION_UP.

Peut-être que le parent de button1 intercepte le TouchEvent. Et l'enfant se ACTION_CANCEL au lieu de ACTION_UP

button1.setOnTouchListener(new View.OnTouchListener() { 
     public boolean onTouch(View view, MotionEvent event) { 
      if (event.getAction() == android.view.MotionEvent.ACTION_DOWN) { 

       //it works here 
       // progress = ProgressDialog.show(ExampleAct.this,"Processing...","Preparing file", true); 

      } else if (event.getAction() == android.view.MotionEvent.ACTION_UP 
        ||event.getAction() == MotionEvent.ACTION_CANCEL 
        ) { 
       //It doesn't work here 
       progress = ProgressDialog.show(ExampleAct.this,"Processing...","Preparing file", true); 

      } 
      return true; 
     } 

    }); 
+0

J'ai oublié d'ajouter une chose, j'ai fait autre code et il est très bien à l'intérieur du bloc ACTION_UP –

+0

BTW, le code que vous avez fourni a un bug, ProgressDialog sera appelé deux fois , un pour ACTION_UP et un pour CANCEL –