gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 20:26:43 25 4
gpt4 key购买 nike

我有一个 MainActivity 作为父级,并且有一个带有 fragment 的 SettingsActivity 作为子级。现在,当我按操作栏上的后退箭头时。 onBackPressed() 被正常调用,但是当我按下设备上的后退按钮时,onBackPressed 不会被调用。按下这个按钮怎么称呼?我如何识别系统后退按钮的后按。我正在使用瑞芯微平板电脑,因此也可以在设备上按回物理键。我希望按下这些按钮时调用 onBackPressed 函数。但他们不是。

需要执行哪些必要步骤?

enter image description here

设置 Activity :

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

基本 Activity :

    @Override
public void onBackPressed() {
lockApp();
mWebView.loadUrl( getWebViewURL() );
}

我希望我制作的这张绘画图像足以让我了解我现在遇到的麻烦。我希望在按下底部后退按钮或在设备本身上时也调用 onBackPressed 函数,但现在不知道如何做到这一点。预先感谢您的任何帮助。 SettingsActivity 中的导航栏进入 onBackPressed,但按下底部按钮时不会进入。

启动 Activity 为我解决了这个问题,但我确信这是一个糟糕的解决方案,而且不是正确的方法,或者是吗?

设置 Activity :

    @Override
public void onBackPressed() {
super.onBackPressed();
Intent intent = new Intent(this, WebViewActivity.class);
startActivity( intent );
}

最佳答案

 @Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
onBackPressed();
return true;
}
return super.onOptionsItemSelected(item);
}

关于java - 当按下设备上或底部栏上的后退按钮时,不会调用 onBackPressed,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58913832/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com