gpt4 book ai didi

java - BlackBerry 将 UIApplication 与 MainScreen 结合使用

转载 作者:行者123 更新时间:2023-12-02 08:34:57 24 4
gpt4 key购买 nike

我正在尝试将浏览器字段添加到我的主屏幕上。目前,我有:

public class BrowserFieldDemo extends UiApplication {

private MainScreen _browserScreen;
private BrowserField _bf2;
private BrowserFieldConfig _bfConfig;

public BrowserFieldDemo(final String url) {
_browserScreen = new MainScreen();
_bfConfig = new BrowserFieldConfig();
_bfConfig.setProperty(BrowserFieldConfig.NAVIGATION_MODE,
BrowserFieldConfig.NAVIGATION_MODE_POINTER);
_bfConfig.setProperty(BrowserFieldConfig.JAVASCRIPT_ENABLED,
Boolean.TRUE);
_bf2 = new BrowserField(_bfConfig);
_browserScreen.add(_bf2);

invokeLater(new Runnable() {
public void run() {
_bf2.requestContent(url);
pushScreen(_browserScreen);
}
});
}
}

在其他 UI 元素中,将浏览器插入主屏幕类的正确方法是什么?例如,添加(myBrowserField)?我不确定如何设置 BrowserFieldDemo 类来执行此操作,因为我需要为线程扩展 UIApplication...

public class LoginScreen extends MainScreen implements FieldChangeListener{}

谢谢!

<小时/>

更新:

我现在有以下内容:

public class LoginBrowserField extends Thread {

private LoginScreen loginScreen;
private String url;

public LoginBrowserField(String url, LoginScreen loginScreen) {
this.loginScreen = loginScreen;
this.url = url;
}

public void run() {
synchronized (UiApplication.getEventLock()) {
loginScreen.changeURL(url);
}
}
}

public class LoginScreen extends MainScreen implements FieldChangeListener {

public void changeURL(final String url) {
_bf2.requestContent(url);
_bf2.setFocus();
}

}

为了启动浏览器,我调用(在 LoginScreen 中):

LoginBrowserField browser = new LoginBrowserField(url, this);
browser.start();

但是,我不确定上面的设置是否正确,因为浏览器需要很长时间才能出现在应用程序中,并且无法正确解析我的 URL。你能看出有什么问题吗?

谢谢!

最佳答案

如果您需要一个新线程在后台运行代码(即通过 HTTP 加载数据),您只需创建一个新的 Thread 对象并 start() 它 - 无需为此子类化 UiApplication。

另一方面,如果您需要安排一些代码在事件处理程序线程中运行(例如pushScreen),则可以使用UiApplication.getUiApplication()来获取UiApplication的实例,例如:

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

关于java - BlackBerry 将 UIApplication 与 MainScreen 结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2143322/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com