メイン画面にブラウザ フィールドを追加しようとしています。現在、私は持っています:
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要素の中でも、ブラウザをメインスクリーンクラスに挿入する正しい方法は何ですか? たとえば、add(myBrowserField)? スレッドの UIApplication を拡張する必要があるため、これを行うために BrowserFieldDemo クラスをセットアップする方法がわかりません...
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 が正しく解決されないため、上記の設定が正しいかどうかわかりません。何か間違っていることがわかりますか?
ありがとう!