Я пытаюсь добавить поле браузера на главный экран. В настоящее время у меня есть:
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);
}
});
}
}
Как правильно вставить браузер в класс Main Screen среди других элементов пользовательского интерфейса? Например, добавить (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. Вы видите что-нибудь не так?
Спасибо!