1

FragmentActivity があります。アクティビティには 1 つのフラグメントが含まれます。
フラグメントにはボタンがあり、クリックすると画像ビューが中央に表示されます (View.VISIBLE)。
イメージビューが表示されているかどうかを確認するための戻るボタンイベントが必要です。それ以外の場合は、デフォルトの戻るボタンイベントを続行します。
FragmentActivity と Fragment は別のクラスです。Fragment には onBackPressed() はありません。では、どうすればよいのでしょうか。Fragment クラスで back イベントを処理したい。

4

4 に答える 4

0

アクティビティでトリガーされたらonBackPressed()、必要なフラグメントと通信します。このリンクをチェックして、フラグメントとアクティビティ間の通信方法を確認してください。

http://developer.android.com/training/basics/fragments/communicating.html

于 2013-09-29T08:32:12.347 に答える
0
@Override
public void onBackPressed() {

    // If the fragment is here, let him handle it
    ourFragment.someMethodWeveCreatedToHandleBackPressed();

    // If it was not handled by the method above, then let the super do his usual "back"
    if (!handled){
        super.onBackPressed();
    }
}
于 2013-09-29T08:33:25.900 に答える
0

onKeyDownフラグメント内でメソッドをオーバーライドしないのはなぜですか?

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_BACK) {
        // Check you image view visibility
        if(yourImageView.getVisibility() == View.VISIBLE) {
              yourImageView.setVisiblity(View.GONE);
              return true; // This line is important to handle the event here and not in the next receiver
        }
    }
    return super.onKeyDown(keyCode, event);
}

それがうまくいくかどうか教えてください!

于 2013-09-29T10:19:25.560 に答える
-2

transaction.addToBackStack(null); を使用します。

于 2013-09-29T08:40:54.520 に答える