2012-01-24 43 views
0

在我的應用程序中,我有一個BrowserField2加載不同的頁面,我想顯示一個簡單的旋轉進度條/指標。儘可能簡單,沒有百分比等 - 只是一個小動畫,以指示用戶正在發生的事情。BrowserField2黑莓簡單進度條

我來自Android開發,那裏有一種叫Progressbar的東西,雖然對於Blackberry來說,它可能被稱爲完全不同的東西? (Blackberry的Progressbar似乎總是包括計算所取得的進展)。

我該找什麼?

+0

您可能需要一個gif圖像;並創建一個彈出窗口,並在那你喜歡這個鏈接:http://stackoverflow.com/questions/7605919/loading-gif-image-on-above-bitmap-field-in-blackberry/7606108#7606108我發佈和在那個彈出的屏幕上拿一個像「Please wait」一樣的labelfield並添加到它; – alishaik786

+0

謝謝,唯一的問題是,這會阻止用戶界面。 – DecodeGnome

+0

嗯,我想我可以寫一個答案並接受它,但我會以某種方式解決此問題,以便小動畫不會阻止整個用戶界面。對解決方案還不滿意。 – DecodeGnome

回答

1

我以一種相當非正統的方式解決了這個問題,我可能不會推薦任何人,但我會寫它,因爲它可能會幫助那些急於完成任務的人。請記住,這是一個不好的做法。

我的應用程序基本上由4個按鈕和一個browserfield組成。

要顯示一個旋轉的「加載動畫」我用一個browserfieldlistener觸發定製PopupScreen的alishaik786的尖端(見他的評論):

// BrowserFieldListener to catch when a page started loading and when it is finished 
       BrowserFieldListener listener = new BrowserFieldListener() { 

          public void documentCreated(BrowserField browserField, ScriptEngine scriptEngine, Document document) throws Exception{ 
           displayLoadAnimation(); 
           // see method below 
          }   

          public void documentLoaded(BrowserField browserField, Document document) throws Exception{ 
           try{ 
            popUp.close(); 
           }catch(IllegalStateException es){ 
            es.printStackTrace(); 
           } 
          } 
         }; 

      // The method for showing the popup 
      private void displayLoadAnimation(){ 

        popUp = new LoadingPopupScreen(); 

        UiApplication.getUiApplication().invokeLater(new Runnable() { 
         public void run() { 
          UiApplication.getUiApplication().pushScreen(popUp); 
         } 
        }); 
       } 

然後在我的自定義PopupScreen我檢查其中用戶點擊「protected boolean touchEvent(TouchEvent event)」,方法是檢查touch的event.getGlobalY()& event.getGlobalX()並將其與按鈕的位置進行比較。如果用戶按下某個按鈕的X &,那麼彈出窗口關閉,我觸發正在按下的按鈕。

正如我所說這是一個不好的方法(許多事情需要靜態),但它的作品,如果你想要一個快速和骯髒的溶劑。