2012-12-21 279 views
0

我正在做一个Web应用程序的黑莓,我真的需要当前的URL为什么documentUrl返回NULL

documentUrl的描述,它说

此方法将返回的网址这BrowserField实例

我的代码当前加载的页面是:

_bf2.requestContent("google.com";); 
add(_bf2); 
Global.c = _bf2.getDocumentUrl(); 
Global.be=new BasicEditField("URL: "+Global.c,Global.c); 
add(Global.be); 

奇怪的是,www.google.com在BrowserField中加载并且documentUrl返回null。

这是我当前的代码:

BrowserField _bf2 = new BrowserField(); 
MYBrowserFieldListener _listener = new MYBrowserFieldListener(); 
_bf2.requestContent("google.com";); 
_bf2.addListener(_listener); 
String url=_bf2.getDocumentUrl(); 
Global.be=new BasicEditField("URL: "+url,url); 
add(Global.be); 
add(_bf2); 

我改成了

final BrowserField _bf2 = new BrowserField(); 
_bf2.requestContent("google.com";); 
//_bf2.addListener(listener); 
Global.be=new BasicEditField("URL: "+Global.c,Global.c); 
add(Global.be); 
add(_bf2); 
_bf2.addListener(new BrowserFieldListener(){ 
    public void documentLoaded(BrowserField _bf2, Document document) throws Exception { 
     Global.c=_bf2.getDocumentUrl(); 
    } 
}); 

但它仍然返回null。有人能告诉我如何解决这个问题吗?提前致谢!

+0

String l = browserField.getDocumentUrl; – user1905507

+0

当我在文本字段上打印时,这行代码返回null。有人可以告诉我如何解决这个问题,以便我获得当前的URL? – user1905507

+1

API说:“如果没有页面被加载,这个方法将返回null”。所以唯一的猜测是你调用'getDocumentUrl()'的时候你还没有加载页面(完全或完全)。那么,为什么你不发布整个代码呢? –

回答

1

我会说阿哈迈德回答了你的问题。一个HTTP请求是一个非常耗时的过程(从CPU的角度来看),并会阻塞,直到服务器响应。我怀疑RIM程序员根据自己的建议对requestContent()方法进行了编码,并在单独的线程中获取Web内容。所以,requestContent()将会立即返回,当你调用getDocumentUrl()时,它仍然是空的,因为在这一点上获取线程可能甚至没有连接到服务器。

您将需要实现BrowserFieldListener并侦听documentLoaded()。

+0

这是我当前的代码:\t BrowserField _bf2 = new BrowserField(); \t MYBrowserFieldListener _listener = new MYBrowserFieldListener(); \t _bf2.requestContent(“http://www.google.com”); \t _bf2.addListener(_listener); \t String url = _bf2.getDocumentUrl(); \t Global.be = new BasicEditField(“URL:”+ url,url); \t add(Global.be); \t add(_bf2); – user1905507

+0

我使用MyBrowserField类从http://supportforums.blackberry.com/t5/Java-Development/BrowserField-Sample-Code-Using-the-BrowserFieldListener-class/ta-p/496213 – user1905507

+0

而我仍然得到空值来自getDocumentUrl。有人请帮助我! – user1905507