2010-04-15 6 views
2

Comment rendre une activité temporairement inaccessible et non focalisable?Android désactiver l'activité

+0

Vous souhaitez que l'activité reste active, mais que rien sur son interface utilisateur ne soit tactile ou focalisable? –

+0

oui, c'est exactement ce que je veux ... – Arutha

+0

J'ai besoin d'une méthode comme setEnabled (false) mais sur une activité – Arutha

Répondre

0

Vous pouvez désactiver tous les écouteurs quand vous le souhaitez. Une autre approche que j'ai utilisée est d'utiliser une disposition linéaire transparente ou une disposition relative à gonfler pour couvrir le plein écran pendant une période de temps.

public void coveredScreen(){ 
    if(point_total>0){ 
     parent = (RelativeLayout) findViewById(R.id.main_view); //whatever your layout is 
     loadedView = getLayoutInflater().inflate(R.layout.covered_screen, null); //the layout that contains something that fills parent. 

     parent.addView(loadedView); 

     updateHandler = new Handler(); 

     updateHandler.postDelayed(coveredScreen, 2000); //opens layout for 2000 ms 

     // turns off listeners... 
     button1.setClickable(false); 
     button2.setClickable(false); 

} 

Runnable loadingScreen = new Runnable() { 
     public void run() { 
     // this turns on listeners and removes the inflated view 
      parent.removeView(loadedView); 
      button1.setClickable(true); 
      button2.setClickable(true); 

     // Call this method again every 3 seconds if desired or as long as wanted by uncommenting this handler 
     //updateHandler.postDelayed(this, 3000); 
     } 
    }; 

Alors ... pour régler cela va aussi longtemps que vous le souhaitez ensuite appeler chaque fois que vous voulez bloquer toutes les actions de l'utilisateur dans l'activité.

Questions connexes