0

我有一个Fragment Activity托管MapListActivity. 我想在按下后退按钮时放置一个方法Activity,但它似乎根本不起作用。我Log的甚至没有印在Stacktrace. 我不知道到底出了什么问题。

这是方法:

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_BACK ) {
           Log.e("Test","Back Button Clicked");

            this.finish();
            return true;
    }
    return super.onKeyDown(keyCode, event);
}
4

5 回答 5

2
@Override 
public void onBackPressed(){ 
  Toast.makeText(getBaseContext(), "back button pressed", Toast.LENGTH_SHORT).show(); 
  Log.e("Test","Back Button Clicked");
  this.finish();
} 
于 2012-05-25T10:48:05.907 回答
2

如果你想要那种功能,你需要在你的活动中覆盖它,然后为你的所有片段添加一个 YourBackPressed 接口,只要按下后退按钮,你就会在相关片段上调用它。

复制自如何在 Android Fragments 中实现 onBackPressed()?

于 2012-05-25T11:38:08.793 回答
0

也许尝试删除“if”语句,看看会发生什么?

于 2012-05-25T10:51:12.653 回答
0

试试看,它可能会根据您的需要工作,

public boolean onKeyDown(int keyCode, KeyEvent event) {
            if (keyCode == KeyEvent.KEYCODE_BACK) {
                Log.e("Test","Back Button Clicked");
    Intent backpage = new Intent(CurrentActivity.this,BackPageActivity.cls);
                    startActivity(backpage);
               CurrentActivity.this.finish();

                return true;
            }
            return super.onKeyDown(keyCode, event);    
        }
于 2012-05-25T10:59:38.363 回答
0

问题解决了:

如何在 Fragments 中实现 onBackPressed()?

为了在 Fragment 上使用后退按钮,您还需要在您的子活动上声明onKeyDown/onBackPressed()方法。

于 2012-05-25T11:06:44.613 回答