0

finish()Androidでアプリケーションを終了する前に、現在のアクティビティを閉じるために使用しています。

しかし、ブラックベリーで画面を閉じることができません。

public class Main_AllLatestNews extends MainScreen {

public Main_AllLatestNews() {
    super(USE_ALL_WIDTH);
}

private boolean Dialog() {
    final Bitmap logo = Bitmap.getBitmapResource("icon.png");
    d = new Dialog("确定离开?", new String[] { "是", "否" }, new int[] {
            Dialog.OK, Dialog.CANCEL }, Dialog.OK,
            logo) {
        public void setChangeListener(FieldChangeListener listener) {
            if (d.getSelectedValue() == Dialog.OK) {

            } else {
                d.close();
            }
        };
    };
    d.show();
    return (d.doModal() == Dialog.OK);
}

public boolean onClose(){
    if(Dialog()){
        System.exit(0);
        return true;
    }else
        return false;
}
}

これが私のMainクラスです

public class Main extends UiApplication {
public static void main(String[] args) {
    Main theApp = new Main();
    theApp.enterEventDispatcher();
}

public Main() {
    pushScreen(new MyScreen());
}

public final class MyScreen extends MainScreen {
    private Bitmap logo = Bitmap.getBitmapResource("logo_page.png");
    private BitmapField bmfield;

    public MyScreen() {
        setTitle("Oriental Daily");

        bmfield = new BitmapField(logo, Field.FIELD_HCENTER
                | BitmapField.FOCUSABLE) {
            protected boolean navigationClick(int status, int time) {
                Main.this.pushScreen(new Main_AllLatestNews());
                Main.this.popScreen(MyScreen.this);
                return true;
            }
        };
    }
}
4

1 に答える 1

3

それは、密接な行動をどのように機能させたいかによって異なります。また、私は英語しか読めないので、あなたのDialog言っていることが 100% わかりません。アプリを閉じることと関係があると思いますか(はいまたはいいえ)?

とにかく、通常、私のアプリはサブクラスのonClose()メソッドをオーバーライドして終了します。MainScreen実際にエスケープ キーをリッスンする必要はありません。 onClose()ユーザーがアプリを完全に終了するか、ブラックベリー アイコンの小さなボタンを押して[閉じる]を選択すると、通常どおり呼び出されます。

public final class MyScreen extends MainScreen {

   /** @return true if the user chooses to close the app */
   private boolean showDialog() {       
      Bitmap logo = Bitmap.getBitmapResource("icon.png");
      Dialog d = new Dialog("确定离开?", 
            new String[] { "是", "否" }, 
            new int[] { Dialog.OK, Dialog.CANCEL }, 
            Dialog.OK,
            logo);       
      return (d.doModal() == Dialog.OK);
   }       


   /** Shutdown the app? */
   public boolean onClose() {
      if (showDialog()) {       
         System.exit(0);
         return true;
      } else {
         // the user does not want to exit yet
         return false;
      }
   }
}  
于 2012-06-29T04:00:49.640 に答える