gpt4 book ai didi

android - 需要按两次后退按钮才能从 Activity 中返回

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:15:07 24 4
gpt4 key购买 nike

我有一个主要 Activity A (PlacesListActivity)。它从抽屉导航中调用 Activity B (AboutMeActivity)。我已在 list 中将 Activity A 声明为 B 的父 Activity 。

现在,当我从 A->B 时,

  • 如果我按下操作栏中的后退箭头,它会将我带回到 Activity A。

  • 关于硬件按钮,我必须按两次才能返回 Activity A。当我按一次硬件按钮时,没有任何反应。它似乎只是重新加载 Activity B。我不想要这个。按一次硬件按钮应该可以完成工作。

Activity B 的代码:

 @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_about_me);
initialize();
}

private void initialize() {
toolbar = (Toolbar) findViewById(R.id.toolbarAboutMe);
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
.....
}

initialize 函数只是初始化一些 UI 元素。

调用 Activity B的代码:

@Override
public void onDrawerItemSelected(View view, int position) {
Intent i;
switch (position) {
case 0:
i = new Intent(this, AboutMeActivity.class);
startActivity(i);
break;
......

list :

<activity
android:name="....AboutMeActivity"
android:parentActivityName="....PlacesListActivity">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="....PlacesListActivity" />
</activity>

编辑:

我已经尝试覆盖 OnBackPressed(),但它从未被调用。

尝试覆盖 OnKeyDown() 并在其中调用 finish(),但我仍然必须按两次才能返回 Activity A。

最佳答案

在我的例子中,当我按下硬件后退按钮时,搜索组件确实获得了焦点

这样做解决了我的问题:

override fun onResume() {
super.onResume()
searchInputView?.clearFocus() //searchInputView is initialized in onCreateOptionsMenu
}

所以一般来说,确保后退按钮被 Activity 正确捕获,而不是被 Activity 的子组件捕获

关于android - 需要按两次后退按钮才能从 Activity 中返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35522516/

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