2010-11-11 5 views
0

C'est mon code que j'ai, l'onActivityResult capture une intention que j'ai créée mais mon problème est que setContentView (R.laout.waiting) n'est pas utilisé. R.layout.waiting n'est pas affiché sur android. Au lieu de cela, l'écran passera complètement à l'obscurité pendant quelques secondes jusqu'à ce qu'il finisse le reste du code, mais il affichera setContentView (tv) ;. comment puis-je forcer Android à afficher la mise en page avant de passer au reste du code.mise en page android ne montrent pas, comment forcer afficher?

public void onActivityResult(int requestCode, int resultCode, Intent intent) { 
     super.onActivityResult(requestCode, resultCode, intent);  


     setContentView(R.layout.waiting); 
     SystemClock.sleep(100000); 


     IntentResult scanResult = IntentIntegrator.parseActivityResult(requestCode, resultCode, intent);      
     displayScanResults(scanResult.getContents());  
} 

displayScanResults public void (String) upc {

item.scanItem(upc); 
    tv = new TextView(this); 
    tv.setText("" + item.getResults().get(0)); 
    setContentView(tv);  

}

Répondre

1
public void onActivityResult(int requestCode, int resultCode, Intent intent) { 
    super.onActivityResult(requestCode, resultCode, intent);   
    setContentView(R.layout.waiting); 
    IntentResult scanResult = IntentIntegrator.parseActivityResult(requestCode, resultCode, intent); 
    final Activity act = this; 
    Thread t = new Thread() { 
    public void run() { 
     try { 
      sleep(10000); 
     } catch (InterruptedException e) { 
      // TODO Auto-generated catch block 
    e.printStackTrace(); 
     } 
     act.runOnUiThread(new Runnable() { 
      public void run() { 
      act.displayScanResults(scanResult.getContents());  
       } 
      }); 
     } 
    }; 
    t.start(); 
} 

Cela devrait fonctionner pour vous.

Questions connexes