Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/188.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 当按下设备上的后退按钮或从底部栏按下时,不会调用onBackPressed_Java_Android_Button_Navigationbar_Back Button - Fatal编程技术网

Java 当按下设备上的后退按钮或从底部栏按下时,不会调用onBackPressed

Java 当按下设备上的后退按钮或从底部栏按下时,不会调用onBackPressed,java,android,button,navigationbar,back-button,Java,Android,Button,Navigationbar,Back Button,我有一个主活动作为父活动,一个设置活动作为子活动带有片段。现在,当我按下操作栏上的后退箭头。onBackPressed()通常会被调用,但当我从设备上按back按钮时,onBackPressed不会被调用。那个按键叫什么?如何识别系统后退按钮的后退按钮。我正在使用rockchip平板电脑,因此也可以在设备上按回物理键。我希望在按下这些按钮时调用onBackPressed函数。但事实并非如此 需要采取哪些步骤 设置活动性: @Override protected void onCreate(B

我有一个主活动作为父活动,一个设置活动作为子活动带有片段。现在,当我按下操作栏上的后退箭头。onBackPressed()通常会被调用,但当我从设备上按back按钮时,onBackPressed不会被调用。那个按键叫什么?如何识别系统后退按钮的后退按钮。我正在使用rockchip平板电脑,因此也可以在设备上按回物理键。我希望在按下这些按钮时调用onBackPressed函数。但事实并非如此

需要采取哪些步骤

设置活动性:

 @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate( savedInstanceState );

    setContentView( R.layout.settings_activity );
    getSupportFragmentManager()
            .beginTransaction()
            .replace( R.id.settings, new SettingsFragment() )
            .commit();
    ActionBar actionBar = getSupportActionBar();
    if (actionBar != null) {
        actionBar.setDisplayHomeAsUpEnabled( true );
    }
}
    @Override
public void onBackPressed() {
    super.onBackPressed();
    Intent intent = new Intent(this, WebViewActivity.class);
    startActivity( intent );
}
基本活动:

    @Override
    public void onBackPressed() {
        lockApp();
        mWebView.loadUrl( getWebViewURL() );
}
我希望我画的这幅画足以让我了解我现在有什么麻烦。我想onBackPressed函数也被调用时,按下底部返回按钮或在他们的设备本身,但没有线索,我现在可以这样做。提前感谢您的帮助。设置活动中的导航栏进入ON BACKPRESSED状态,但在按下底部按钮时不会进入ON BACKPRESSED状态

开始这项活动为我解决了问题,但我确信这是一个糟糕的解决方案,不是正确的方法,或者是吗

设置活动性:

 @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate( savedInstanceState );

    setContentView( R.layout.settings_activity );
    getSupportFragmentManager()
            .beginTransaction()
            .replace( R.id.settings, new SettingsFragment() )
            .commit();
    ActionBar actionBar = getSupportActionBar();
    if (actionBar != null) {
        actionBar.setDisplayHomeAsUpEnabled( true );
    }
}
    @Override
public void onBackPressed() {
    super.onBackPressed();
    Intent intent = new Intent(this, WebViewActivity.class);
    startActivity( intent );
}

你能添加你在设置背压活动时所做的代码吗?显示一些代码!重写设置活动中的onBackPress方法。是否尝试在基本活动上调用onBackPress()?那是不可能的。。您需要重写设置活动时按back press的方法。@Rajnishsuryavanshi我实现的代码现在已经修复了它,但我觉得这是一个非常糟糕的解决方案。在这个网站上,只使用代码的答案通常是不受欢迎的。请编辑您的答案,包括一些注释或对代码的解释,好吗?解释应该回答这样的问题:它做什么?它是如何做到的?它去哪里了?它如何解决OP的问题?请参阅:。谢谢