1

我有一个 FragmentActivity。Activity 包含一个片段。
在片段中,有一个按钮,单击时会在中心出现一个图像视图(View.VISIBLE)。
我想要一个后退按钮事件来检查imageview是否可见,然后将其隐藏,否则,继续默认的后退按钮事件。
由于 FragmentActivity 和 Fragment 是独立的类。而且 Fragment 中没有 onBackPressed() 。那么我该怎么做呢?我想在 Fragment 类中处理 back 事件。

4

4 回答 4

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 回答
0

onBackPressed()在Activity中触发时,与你需要的fragment进行通信,查看此链接查看fragment和activity之间如何通信。

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 回答
-2

使用 transaction.addToBackStack(null);

于 2013-09-29T08:40:54.520 回答