2011-01-03 13 views
0

ボタンクリックで画面をナビゲートする方法 前後には2つのボタンがあります。 前のボタンをクリックすると、screan1が表示され、次にnextを押すと、screan2が表示されます。ブラックベリーの画面

答えて

1

これを行うにはいくつかの方法があります。

1)ボタンを押したときに、新しい画面を作成してスタックにプッシュしてから、古い画面を削除して、次のいずれかを実行します。ごみを収集する。または

2)ボタンを押したときに、そのボタンの画面がすでにスタックに存在するかどうかを判断し、前面に移動するか、上記のように新しいものを作成します。この場合、画面を削除する必要はありませんが、複雑な画面がたくさんある場合、リソースが不足する可能性があります。

参照:net.rim.device.api.ui.UiApplication.pushScreen(画面の画面)とnet.rim.device.api.ui.UiApplication.popScreen(スクリーン画面)

0

ここでは単純な実装があります:


import net.rim.device.api.ui.Field; 
import net.rim.device.api.ui.FieldChangeListener; 
import net.rim.device.api.ui.UiApplication; 
import net.rim.device.api.ui.component.ButtonField; 
import net.rim.device.api.ui.component.LabelField; 
import net.rim.device.api.ui.container.MainScreen; 

public class NavigateScreen extends MainScreen implements FieldChangeListener { 

    private ButtonField previousButton; 
    private ButtonField nextButton; 

    public NavigateScreen() { 
     add(new LabelField("Some content")); 

     previousButton = new ButtonField("Previous", ButtonField.CONSUME_CLICK); 
     previousButton.setChangeListener(this); 

     nextButton = new ButtonField("Next", ButtonField.CONSUME_CLICK); 
     nextButton.setChangeListener(this); 

     add(previousButton); 
     add(nextButton); 
    } 

    public void fieldChanged(Field field, int context) { 
     if (field == previousButton) { 
      UiApplication.getUiApplication().popScreen(NavigateScreen.this); 
      UiApplication.getUiApplication().pushScreen(new PreviousScreen()); 
     } 
     if (field == nextButton) { 
      UiApplication.getUiApplication().popScreen(NavigateScreen.this); 
      UiApplication.getUiApplication().pushScreen(new NextScreen()); 
     } 
    } 
} 
0

こんにちは、画面間を非常にeaslyに切り替えるためにSwitchScreenControllerクラスを作成しました。

public class SwitchScreenController { 

public void switchHomeScreen() { 

} 

public void switchToHomeScreen() { 
    //UiApplication.getUiApplication().pushScreen(new HomeScreen()); 
} 

public void switchToProgressingScreen() { 
} 

public void switchToNextScreen(MainScreen targetScreen) { 
    UiApplication.getUiApplication().pushScreen(targetScreen); 
} 

public void switchToPreviousScreen() { 
     UiApplication.getUiApplication().popScreen(
      UiApplication.getUiApplication().getActiveScreen()); 
} 

} 

このような場所であればどこでも使用できます。あなたは

new SwitchScreenController().switchToNextScreen(new NextScreen()); 
を使用して

new SwitchScreenController().switchToPreviousScreen(); 

と次の画面に戻ってを使用して行くことができます

new 
public class SwitchScreenController { 

public void switchHomeScreen() { 

} 

public void switchToHomeScreen() { 
    //UiApplication.getUiApplication().pushScreen(new HomeScreen()); 
} 

public void switchToProgressingScreen() { 
} 

public void switchToNextScreen(MainScreen targetScreen) { 
    UiApplication.getUiApplication().pushScreen(targetScreen); 
} 

public void switchToPreviousScreen() { 
     UiApplication.getUiApplication().popScreen(
      UiApplication.getUiApplication().getActiveScreen()); 
} 

}