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