java - 防止 ActionBar 后退按钮重新创建 MainActivity

标签 java android

如何防止我的 SecondActivityActionBar 后退按钮(我们会说 ABBB)重新创建 MainActivity点击时?

我在 MainActivity 中有一个 ListView,可以使用 SecondActivity 对其进行编辑。问题是,当用户按下 ABBB 时,ListView 会重置为默认值...

但是,当用户单击“确定”按钮或按物理后退按钮时,没有任何问题,因为我使用的是 finish();

@Override
public void onBackPressed() {
    finish();
}

如果我使用此代码...:

switch (item.getItemId()) {
    case (android.R.id.home):
        finish();
}

...存在同样的问题,因为我猜这个方法是在“Android 代码”之后调用的。

如何完全覆盖 Android ABBB 的单击代码以将其设置为仅调用 finish();

最佳答案

理想的情况是,当您处于 SecondActivity 时(我认为这意味着您处于编辑模式),按下设备后退按钮或 ABBB,您会显示向用户发出微妙的警报,说“他们真的想取消编辑吗”,或者继续应用在“联系人”应用程序中完成的编辑。

话虽这么说,如果您需要的只是在按下 ABBB 时 finish() Activity ,那么上面显示的代码应该可以正常工作(尽管您需要将 return true; finish() 之后)。这个对我有用。在您的 Activity 中尝试以下一项。

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

我放置了onBackPressed();,因为您的 ABBB 现在会模仿您设备的后退按钮。

关于java - 防止 ActionBar 后退按钮重新创建 MainActivity,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33376839/

相关文章:

java - 使用 WebSockets 的 IBM Watson 语音转文本

java - 为每个用户创建单独的表来存储数据或使用单个表

android - 无法在 Android Studio 中运行模拟器

java - 无法获取 Google map fragment 中的当前位置

java - 无法在 Google App Engine 上使用 Log4j 写入日志文件

java - 仅当字符未直接包含在所需字符串之前时,正则表达式才匹配

java - Java 中不允许有异常的函数

android - 如何播放短信的默认声音?

Android动画在Layout结束时停止显示

android - 如何获取timePicker和System Time的时间差