【问题标题】:android toolbar: how to go back to previous activity if back arrow is pressedandroid工具栏:如果按下后退箭头,如何返回上一个活动
【发布时间】:2016-03-17 12:07:20
【问题描述】:

我有一个名为Place的活动

我从之前的活动City 来到Place 活动。

我已使用以下代码在Place 活动中将返回按钮添加到工具栏:

    Toolbar mToolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(mToolbar);
    getSupportActionBar().setDisplayHomeAsUpEnabled(true)

我想设置返回按钮返回City活动

但是City活动需要传递一些参数给它。

那么如何告诉返回按钮去城市活动,而不需要传递参数给它。

【问题讨论】:

  • 在后退按钮的 clicklistner 上调用 finish() 请参阅此处获取精美教程coderzpassion.com
  • 成功了。谢谢。

标签: android toolbar back


【解决方案1】:

根据您的问题。您应该使用finish ()

当您的活动完成并应该关闭时调用它。要完成活动,应该调用finish() 方法。这适用于当前活动的活动。

示例

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    if (item.getItemId() == android.R.id.home) // Press Back Icon
    {
        finish();
    }

    return super.onOptionsItemSelected(item);
}

【讨论】:

    【解决方案2】:

    在您的 AndroidManifest.xml 文件中,添加标签 android:parentActivityName 并将其指向您想要返回按钮的位置。在java中你需要调用

     getActionBar().setDisplayHomeAsUpEnabled(true);
    

    方法,你已经完成了。 This 会有所帮助。

    <application ... >
    ...
    <!-- The main/home activity (it has no parent activity) -->
    <activity
        android:name="com.example.myfirstapp.MainActivity" ...>
        ...
    </activity>
    <!-- A child of the main activity -->
    <activity
        android:name="com.example.myfirstapp.DisplayMessageActivity"
        android:label="@string/title_activity_display_message"
        android:parentActivityName="com.example.myfirstapp.MainActivity" >
        <!-- Parent activity meta-data to support 4.0 and lower -->
        <meta-data
            android:name="android.support.PARENT_ACTIVITY"
            android:value="com.example.myfirstapp.MainActivity" />
    </activity>
    </application>
    

    【讨论】:

    • 正如我所提到的,我的城市活动需要传递一些参数。如果我直接链接我的活动将不会显示任何内容,因为缺少某些参数。
    【解决方案3】:

    在您的 backButton 中,您只需调用 finish(); 并关闭 Activity 而无需将参数传递给其他 Activity。

    【讨论】:

    • 通过finish()返回City活动后。如何在 City 活动中取消选择导航抽屉视图中的菜单项。
    • 当您从 City 活动到 Place 活动时,您的 City 活动将进入 onPause() 状态,并且当您按下后退按钮时,Place 会在 UI 上显示,您会杀死 Place 活动并带回 City 并在你的方法 onPause() 中选择或取消选择你想要的。
    【解决方案4】:
    toolbar.setNavigationOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    finish();
                }
            });
    

    【讨论】:

    • 虽然这段代码可以解决 OP 的问题,但原因尚不清楚。我建议添加一些上下文,说明为什么有必要这样做。
    【解决方案5】:

    你可以简单地使用:

    Toolbar mToolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(mToolbar);
    getSupportActionBar().setDisplayHomeAsUpEnabled(true)
    

    在工具栏上设置您的后退按钮。

    在清单中:

    <activity
        android:name="Your Second Activity"
        android:parentActivityName="Your First Activity" >
        <!-- Parent activity meta-data to support 4.0 and lower -->
        <meta-data
            android:name="android.support.PARENT_ACTIVITY"
            android:value="Your First Activity" />
    </activity>
    

    最后使用:

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
    if (item.getItemId() == android.R.id.home) 
    {
       NavUtils.navigateUpFromSameTask(this);
    }
    
    return super.onOptionsItemSelected(item);
    }
    

    【讨论】:

      猜你喜欢
      • 2015-12-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-26
      相关资源
      最近更新 更多