2012-02-24 6 views
1

私のアプリケーションでは、ダイアログを表示しているときにクリックしています。私はそのダイアログでyesを押すと、それは私に違法な州の例外を与えています。しかし、私は前の画面に戻って行きたい。メニューをクリックして閉じるをクリックすると、前の画面に戻ります。戻るボタンをクリックすると、不正な状態の例外が発生する

public boolean keyDown(int keycode, int time) { 

     if (Keypad.KEY_ESCAPE == Keypad.key(keycode)) { 
      int result = Dialog.ask(Dialog.D_YES_NO, "Do you want to edit the list?"); 
      if (result == Dialog.YES) 
      { 
       try 
       { 
        UiApplication.getUiApplication().popScreen(this); 
       } 
       catch (Exception e) 
       { 
        e.printStackTrace(); 
       } 
//    onClose(); 
      } 
      else 
      { 
       return true; 
      } 
     } // end if 

     return false; 
    } 

が助けてください..

答えて

2

あなたはその後、OnCloseのをデフォルトデバイスの[戻る]ボタンをクリックしている()メソッドが呼び出されます。以下は、私のコードです。ですから、このようにしてみてください。

protected boolean onSavePrompt() 
{ 
    return true; 
} 
public boolean onClose() 
{ 
    int choose=Dialog.ask(Dialog.D_YES_NO, "Close the screen?"); 
    if(choose==Dialog.YES) 
    { 
     return super.onClose(); 
    } 
    return true; 
} 

これがより良い方法です。上記のように使用すると、問題が1つ発生する可能性があります。それは次のとおりです。

あなたが最初の画面でそのメソッドを使用している場合は、画面をポップアップする場合(それが最初の画面あるので)その後、あなたのコードに応じて、その後何の画面が表示スタックではありません。だから、あなたはこの種の問題を抱えるかもしれません。

これを試してください。

+0

ありがとうalishaik786..its解決済み.. –

+0

@Arindam Mukherjee:あなたは突然の必要条件がこのチャットルームに来ることを望む場合:http://chat.stackoverflow.com/rooms/4014/knowledge-sharing-center-for -blackberry-and-java – alishaik786

関連する問題