2017-01-31 6 views
2

アンドロイドデバイスでCodenameone-Appを実行すると、ハードウェアの戻るボタンを押すとアプリケーションが停止/終了します。フォームにバックコマンドを追加しましたが、これは機能しません。ハードウェアバックボタンは、最初のフォームから2番目のフォームを呼び出してそこにハードウェアバックボタンを押しても、期待通りに機能します(2番目のフォームが閉じ、1番目のフォームが表示されます)。コードネーム:アンドロイドのハードウェア - バックボタンがアプリを終了させないようにするにはどうすればいいですか?

最初のフォームでハードウェア戻るボタンを押したときにアプリケーションが終了するのを防ぐにはどうすればよいですか?

答えて

1

あなたは戻るボタンのクリックを処理するためにonBackPressed()を上書きすることができます。

@Override 
public void onBackPressed() { 
} 

ようにそれを残して、ボタンをバックアップするあなたのアプリが応答しないになるだろう。私が質問を正しく理解していれば、それはあなたが達成しようとしていることです!

+0

コードネーム1のどのクラスに、上書き可能なBackPressed()メソッドがありますか? – KlausHeywinkel

+0

私はあなたのコメントを正しく取得していない、あなたがそれをもっと説明することができればよかった! – OBX

+0

メソッドをオーバーライドするとは、すでにそのようなメソッドを持つクラスがあることを意味します。しかし、私はすでにonBackPressed()というメソッドを持っているクラスを見つけることができません。 – KlausHeywinkel

2
@Override 
    public void onBackPressed() { 
     // nothing to code 
    } 

あなたがメソッドをonBackPressedオーバーライドし、それが空であることを維持する必要があり、デフォルトはForm上の行動を最小限に無効にするには最初の画面

2

コールform.setBackCommand(new Command(""));から戻るボタンを押したときに、あなたのアプリが終了を取得することはありません。

+0

Hmm - 申し訳ありませんが、フォームにbackCommandとして空のCommand()を追加しても、ハードウェア戻るボタンが押されたときにアプリケーションが停止することはありません。私が試すことができる他のものはありますか?他の2人の開発者はonBackPressed()をオーバーライドする必要があると書いていますが、このメソッドを上書きできるクラスは見つかりません。 – KlausHeywinkel

+0

これは適切なフォームインスタンスで行う必要があります。古いGUIビルダーなどを使用していますか?それらの他の人はここでは適用されないネイティブAndroidについて話しています。 –

+0

私は、start-class(s​​tart()メソッドとinit()メソッドを持つインスタンス)をインスタンス変数としてメインフォームを作成します。メインフォームから呼び出される/開いた他のフォームもあります。他のフォームにはバックコマンドがあり、アンドロイドのハードウェアバックボタンで正しく機能します(これはアプリケーションが終了しないことを意味しますが、メインフォームはshowBack()で再び開きます)。古いGUIビルダーは、スタイリング目的でのみ使用されます。 – KlausHeywinkel

関連する問題