2011-06-22 9 views
0

私がしようとしているのは、screen1のボタンをクリックすると、screen2を別のイメージと異なる遷移コンテキストで繰り返し押してみることです。ブラックベリーの画像スライドショーを作成するには?

public void fieldChanged(Field field, int context) 
{ 
     if(field==slideButton) 
     {  
      for(int i=0;i<bitmaps.length;i++) 
      { 



       slideScreen = new SliderScreen(bitmaps[i]); 

       UiApplication.getUiApplication().pushScreen(slideScreen); 
       try { 
        Thread.sleep(2000); 
       } catch (InterruptedException e) { 
        // TODO Auto-generated catch block 
        e.printStackTrace(); 
       } 
       UiApplication.getUiApplication().popScreen(slideScreen); 

      } 

     } 
    } 
} 

問題は何がこれを達成するための他の方法がappears.Isないことがある、次のようにコードが..です

あなたの最初のアイデアの

答えて

0

固定バージョン:

public void fieldChanged(Field field, int context) { 
    if (field==slideButton) { 

     final UiApplication app = UiApplication.getUiApplication(); 

     new Thread(new Runnable() { 
      public void run() { 
       for (int i = 0; i < bitmaps.length; i++) { 
        final SliderScreen slideScreen = 
         new SliderScreen(bitmaps[i]); 

        app.invokeAndWait(new Runnable() { 
         public void run() { 
          app.pushScreen(slideScreen); 
         } 
        }); 

        try { 
         Thread.sleep(2000); 
        } catch (InterruptedException e) { 
         // TODO Auto-generated catch block 
         e.printStackTrace(); 
        } 

        app.invokeAndWait(new Runnable() { 
         public void run() { 
          app.popScreen(slideScreen); 
         } 
        }); 
       } 
      } 
     }).start(); 
    } 
} 

UIスレッドがプッシュとポップの間でスリープしていたため、コードが機能しませんでしたので、画面を描画する時間/チャンスがありません。注意:私は全体のアクションを別のスレッドに移動しました。だから今、メインのUIスレッドは、実際に描画する自由な時間があります。

+0

@Manish:これで成功しましたか? –

関連する問題