【问题标题】:How to set multiple parent activities for using android back button如何设置多个父活动以使用android后退按钮
【发布时间】:2014-06-21 22:48:47
【问题描述】:

我有一个应用程序从不同的活动中多次调用一个活动。 因此,我试图在此活动的操作栏中实现“后退按钮”。 为此我使用:

 switch (item.getItemId()) {
    case android.R.id.home:
        NavUtils.navigateUpFromSameTask(this);
        return true;
    default:        
         return super.onOptionsItemSelected(item);
    }

和:

<meta-data
            android:name="android.support.PARENT_ACTIVITY"
            android:value="view.TweetsIndividuoActivity" />

现在的问题是,我无法为我的 android 清单设置父活动,因为我不知道谁是该活动的父活动。

解决办法是什么?

谢谢

【问题讨论】:

    标签: android navigation parent-child


    【解决方案1】:

    这比你想象的要容易。

    switch (item.getItemId()) {
        case android.R.id.home:
            finish();
            return true;
        default:        
             return super.onOptionsItemSelected(item);
    }
    

    方法finish() 将破坏您的活动并显示启动它的活动。如果我理解正确,这就是你想要的。

    您当前的解决方案适用于您每次都想回到同一个父母的情况,例如Gmail 应用程序可以做到这一点。当您从通知中打开电子邮件然后按操作栏后退按钮时,它不会导航回主屏幕,但会显示 Gmail 收件箱。

    【讨论】:

    • 谢谢!但如果这种方式有效,我不明白为什么要使用:NavUtils.navigateUpFromSameTask(this);
    • 这意味着我在答案的最后部分写的内容。活动在任务中运行。如果您打开属于另一个任务的活动,您必须选择: 1. 回到以前可见的活动;这就是后退按钮的作用 2. 返回当前任务的上一个活动。详细解释请阅读developer.android.com/guide/components/…
    • Ughhh 我被某人使用闪亮的 Google Util (NavUtils.navigateUpFromSameTask(this);)...
    【解决方案2】:
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        int id = item.getItemId();
        if (id == android.R.id.home) {
            onBackPressed();
            return  true;
        }
        return super.onOptionsItemSelected(item);
    
    }
    

    您将始终返回到您启动新活动的活动。

    不需要使用下面的代码。

    <meta-data
            android:name="android.support.PARENT_ACTIVITY"
            android:value="view.TweetsIndividuoActivity" />
    

    【讨论】:

      【解决方案3】:

      我也是 Android 新手,但我通过使用“startActivityForResult(intent,1)”而不是“startActivity(intent)”调用第二个活动解决了这个问题。我认为这使它成为父/子关系而不是兄弟活动...?

      我不需要使用 onOptionsItemSelected() 或 finish()。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-06-26
        • 1970-01-01
        • 2021-11-28
        • 2020-11-23
        • 2023-03-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多