【问题标题】:How can I use the Android back button to move back within my app instead of closing my app?如何使用 Android 后退按钮在我的应用程序中返回而不是关闭我的应用程序?
【发布时间】:2011-03-23 14:40:14
【问题描述】:

我的应用程序有三个活动,A、B 和 C。我通过 OK 按钮从 A 移动到 B,我想使用 Android 设备的默认后退按钮从 B 移动到 A。但是,当我按下按钮时,整个应用程序都会关闭。我该如何解决这个问题?

【问题讨论】:

  • 显示您运行的代码,然后单击按钮。你如何从 A 开始 B?
  • 如果答案不能帮助您停止默默地反对它。请发表评论。

标签: java android callback


【解决方案1】:

我怀疑您在 OK 按钮 onclick 侦听器中调用 finish()。不要那样做。 finish() 从活动堆栈中删除您的活动。

阅读更多here

【讨论】:

    【解决方案2】:

    为什么要开始活动以获得结果?当您按下后退按钮时,结果会从 B 活动设置为 RESULT_CANCELED,因此如果您不处理结果代码,它会崩溃...

    你可以这样处理背压

    private static final int NONE = -1;
    
    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
    
        if (keyCode == KeyEvent.KEYCODE_BACK) {
    
       setResult(NONE, intent);
            finish();
        return super.onKeyDown(keyCode, event);
    }
    

    【讨论】:

    • 按返回键不返回结果的说法是错误的。返回的结果将是 RESULT_CANCELED,等于 0
    • 哦,我不知道这个,我以为只是我的应用程序没有处理案例 0 。感谢您的精确!
    【解决方案3】:

    当你确定按钮时,你开始一个意图......就像

    Intent int=新意图(context,B.class); startActivity(int);

    如果你不处理后退按钮。

    如果使用默认的后退按钮...它将返回到 A。

    希望对你有帮助...

    【讨论】:

    • 我正在使用以下行从我的主类 Intent myIntent = new Intent(view.getContext(), Add.class); startActivityForResult(myIntent, 0);
    【解决方案4】:

    在我的 onClick 方法(在主活动中)我使用代码:

     Intent intent = new Intent(context, SecondActivity.class);
     context.startActivityForResult(intent, SecondActivity.SECONDACTIVITY_REQUEST);
    

    在我的清单中:

     <activity android:name=".SecondActivity" android:screenOrientation="landscape" android:launchMode="standard"></activity>
    

    这对我有用,没有我能看到的任何其他设置。您正在响应哪些事件?

    请注意,您也可以返回活动,代码如下:

    super.setResult(Activity.RESULT_OK);
    super.finish();
    

    编辑... 确保您没有在 Main Activity 的 onKeyDown 事件中吞下该事件。

    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        //your code here
        //if (keyCode ==
        //...
        //else
        return super.onKeyDown(keyCode, event);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-10-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-01
      相关资源
      最近更新 更多