Android:FragmentActivity中的后退按钮事件

时间:2013-09-29 08:28:42

标签: android fragment

我有一个FragmentActivity。 活动包含一个片段 在片段中,有一个按钮,当点击时,图像视图将在中心出现(View.VISIBLE) 我想要一个后退按钮事件来检查如果图像视图可见,则隐藏它,否则,继续默认的后退按钮事件。
由于FragmentActivity和Fragment是独立的类。 Fragment中没有onBackPressed()。那我该怎么办呢?我想处理Fragment类中的后台事件。

4 个答案:

答案 0 :(得分:0)

在Activity中触发onBackPressed()时,将其与您需要的片段进行通信,请查看此链接以了解如何在片段和活动之间进行通信。

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

答案 1 :(得分: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();
    }
}

答案 2 :(得分: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);
}

让我知道它是否适合您!

答案 3 :(得分:-2)

使用transaction.addToBackStack(null);