Android 安卓后退按钮没有';我根本不工作

Android 安卓后退按钮没有';我根本不工作,android,Android,我有一个片段活动托管一个映射和列表活动。当按下活动上的后退按钮时,我想输入一个方法,但它似乎根本不起作用。我的日志甚至没有打印在堆栈跟踪上。 我不知道到底出了什么问题 方法如下: @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK ) { Log.e("Test","Back Button Clicked");

我有一个
片段活动
托管一个
映射
列表活动
。当按下
活动
上的后退按钮时,我想输入一个方法,但它似乎根本不起作用。我的
日志
甚至没有打印在
堆栈跟踪
上。 我不知道到底出了什么问题

方法如下:

@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);
}

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

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

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

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);    
        }

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

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);    
        }
解决的问题:

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

问题已解决:


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

如果您想要这种功能,您需要在活动中覆盖它,然后向所有片段添加YourBackPressed接口,只要按下后退按钮,就可以调用相关片段


复制自

如果您想要这种功能,您需要在活动中覆盖它,然后将YourBackPressed接口添加到所有片段中,每当按下back按钮时,您都会调用相关片段


复制自

如果您将Log.d(“Test”、“KeyCode”+KeyCode”)放在;作为方法的第一行?您的代码可能有问题,您的父活动获取实例,而您当前的活动未获取Backpressed事件的实例。。。您可以在您的家长活动中打印backpressed事件,然后检查…@RakeshGondaliya:那么您的建议是什么?在所有的儿童活动中都使用相同的按键法?@Agarwal:我该怎么称呼呢?如果您将Log.d(“Test”,“KeyCode”+KeyCode”)放进去会怎么样;作为方法的第一行?您的代码可能有问题,您的父活动获取实例,而您当前的活动未获取Backpressed事件的实例。。。您可以在您的家长活动中打印backpressed事件,然后检查…@RakeshGondaliya:那么您的建议是什么?在所有的儿童活动中都使用相同的按键法?@Agarwal:我该怎么称呼呢?