他の回答に何かを追加するだけです。
public void onBackPressed() {
if (mViewFlipper.getDisplayedChild() == 1) {
mViewFlipper.setDisplayedChild(0);
} else if (mViewFlipper.getDisplayedChild() == 0) {
flipView.setDisplayedChild(1);
}
}
が十分ではありません。
は、我々は我々がやって、めくっているだけで2つのビューがあるとしましょう。実際、それはあなたのために別の問題を作り出します。 ビューが0(最初)の場合、[戻る]ボタンを押すと、何も起こりません。アクティビティは終了しません。これは、super.onBackPressed()
を呼び出していないためです。上記のコードにsuper.onBackPressed()
を追加すると、別の問題が発生します。 1(2番目のビュー)からフリップすると、最初のビュー(0)に移動してアクティビティを終了しますが、1つのアクティビティから別のアクティビティに移行する間にビューをスキップする奇妙なアニメーション以外の場合は間違っています。
ViewFlipper
を含むあなたの活動のためのonBackPressed()
を実施するための最良の方法はこれです:
public void onBackPressed() {
int displayedChildId = mViewFlipper.getDisplayedChild(); //get current view's number
if (displayedChildId > 0) { //if this number is greater than 0(let's say 5)
mViewFlipper.setDisplayedChild(displayedChildId - 1);//We then go down that number by 1. That is 5 - 1, which is 4. This happens until displayedChildId isn't greater than 0 anymore, which is then the first view. if we press back from here, we exit the activity.
} else {
super.onBackPressed();
}
}
私は、これはいくつかのコードが最も参考になる感覚
は、この問題を診断されます願っています... – Devunwired
申し訳ありませんが、問題が解決されました(バグが発見されました)、2番目のページにeditTextのフォーカスを設定した場合、戻るボタンはもう機能しません。 – Giuseppe