Переключение страниц / классов в BlackBerry - PullRequest
0 голосов
/ 01 августа 2011

Я сейчас занимаюсь разработкой приложения для ежевики.сценарий, когда пользователь нажимает на элемент меню, он переходит на другую страницу.В настоящее время существует 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 Ответ

1 голос
/ 01 августа 2011

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

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

...