Переключение страниц / классов в BlackBerry

В настоящее время я занимаюсь разработкой приложения для Blackberry. сценарий, когда пользователь нажимает на элемент меню, он переходит на другую страницу. В настоящее время есть 3 класса, MyApp, SecondPage и MyScreen. приведенные ниже коды принадлежат SecondPage.

Из MyApp я пытаюсь переместить экран на SecondPage после того, как пользователь нажимает на MenuItem, но я не могу этого сделать, поскольку он (SecondPage) расширяет UiApplication. Я прав? но если я изменю его, чтобы расширить MainScreen, он не сможет нажать PushScreen(_screen). какие-либо предложения, пожалуйста?

Спасибо хенд

class MyApp extends UiApplication{

//creating a member variable for the MainScreen
MainScreen _screen= new MainScreen();
//string variables to store the values of the XML document
String _node,_element;
Connection _connectionthread;

public static void main(String arg[]){
    MyApp application = new MyApp();
    //create a new instance of the application
    //and start the application on the event thread
    application.enterEventDispatcher();
}

public MyApp() {
    _screen.setTitle("Agenda");//setting title
    //_screen.add(new RichTextField("Requesting....."));
    _screen.add(new SeparatorField());
    pushScreen(_screen); // creating a screen
    //creating a connection thread to run in the background
    _connectionthread = new Connection();
    _connectionthread.start();//starting the thread operation
}

    public void updateField(String node, String element) 
{    
    synchronized (UiApplication.getEventLock()) 
    {
        String title = "My App";
        _screen.add(new RichTextField(/*node + " : " +*/ element + "\n" ));
        if (node.equals(title))
        {
            _screen.add(new SeparatorField());
        }
    }
}

1 ответ

Решение

Ваши экраны должны наследоваться от Screen, а не от UiApplication. Если вы посмотрите документы для UiApplication, вы увидите, что есть статический метод getUiApplication() это вернет вам ссылку на UiApplication для целей нажатия экранов (среди других полезных задач).

Так что вместо просто pushScreen(_screen) ваш код будет UiApplication.getUiApplication().pushScreen(_screen),

Другие вопросы по тегам