2011-11-01 44 views
0

我想显示加载网页的进度。我使用BrowserFieldListener来计算网页的进度。但屏幕上没有显示。我如何计算这一进展的百分比?计算加载黑莓网页的进度

类BrowserFieldDemoScreen扩展MainScreen {

public BrowserFieldDemoScreen() 
{ 
    BrowserFieldConfig myBrowserFieldConfig = new BrowserFieldConfig(); 
    myBrowserFieldConfig.setProperty(BrowserFieldConfig 
.NAVIGATION_MODE,BrowserFieldConfig.NAVIGATION_MODE_POINTER); 


    BrowserField browserField = new BrowserField(); 



    browserField.requestContent("http://www.blackberry.com"); 
    browserField.addListener(new BrowserFieldListener() { 

    public void documentAborted(BrowserField browserField, Document document) throws Exception 
    { 
     if ((browserField != null) && (document != null)) 
     { 
      String title = browserField.getDocumentTitle(); 
      String url = document.getBaseURI(); 
      browserField.getErrorHandler().displayContentError(url, "Aborted loading document '" + title + "'"); 
     } 
     super.documentAborted(browserField, document); 
    } 


    public void documentCreated(BrowserField browserField, ScriptEngine scriptEngine, Document document) throws Exception 
    { 
     if ((browserField != null) && (document != null)) 
     { 
      String title = browserField.getDocumentTitle(); 
      String url = document.getBaseURI(); 
      System.out.println("[" + this.getClass().getName() + "] Document '" + title + "' created for URL " + url); 
     } 
     super.documentCreated(browserField, scriptEngine, document); 
    } 

    /** 
    * 
    * @param browserField - The BrowserField to which the document belongs 
     * @param document - The document for which this event belongs. 
    */ 
    public void documentError(BrowserField browserField, Document document) throws Exception 
    { 
     if ((browserField != null) && (document != null)) 
     { 
      String title = browserField.getDocumentTitle(); 
      String url = document.getBaseURI(); 
      browserField.getErrorHandler().displayContentError(url, "Error loading document '" + title + "'"); 
     } 
     super.documentError(browserField, document); 
    } 


    public void documentLoaded(BrowserField browserField, Document document) throws Exception 
    { 
     if ((browserField != null) && (document != null)) 
     { 
      String title = browserField.getDocumentTitle(); 
      System.out.println("[" + this.getClass().getName() + "] Document '" + title + "' loaded"); 
     } 
     super.documentLoaded(browserField, document); 
    } 


    public void documentUnloading(BrowserField browserField, Document document) throws Exception 
    { 
     if ((browserField != null) && (document != null)) 
     { 
      String title = browserField.getDocumentTitle(); 
      System.out.println("[" + this.getClass().getName() + "] Document '" + title + "' unloading"); 
     } 
     super.documentUnloading(browserField, document); 
    } 


    public void downloadProgress(BrowserField browserField, ContentReadEvent event) throws Exception 
    { 
     if ((browserField != null) && (event != null)) 
     { 
      String title = browserField.getDocumentTitle(); 
      double amtComplete = event.getItemsRead()/event.getItemsToRead(); 
      System.out.println("[" + this.getClass().getName() + "] Document '" + title + "' loading " + String.valueOf(amtComplete) + "% complete"); 
     } 
     super.downloadProgress(browserField, event); 
    }}); 


} 

}

回答

0

来计算当前装入一个BrowserField你应该附加一个BrowserFieldListener您BrowserField网页的百分比。

您特别感兴趣的事件是downloadProgress(BrowserField browserField, ContentReadEvent event)

这是来自官方黑莓支持论坛的一个很好的教程,它将教你如何做你想做的事:BrowserField Sample Code

+0

看我的编辑你能告诉我什么问题 – mobileDeveloper

+0

示例代码只打印控制台的当前进度。您需要重写'downloadProgress'方法来更新进度条。 我在黑莓支持论坛上发现了一个例子[here](http://supportforums.blackberry.com/t5/Java-Development/How-to-track-progress-of-page-loads-in-您-BrowserField2/TA-p/617436)。 –

+0

我看到这个链接时,我尝试它的网页没有显示,进度是0,当我点击输入时, – mobileDeveloper