【问题标题】:How can I return Base Activity如何返回基本活动
【发布时间】:2014-08-06 16:23:07
【问题描述】:

我正在 Android 平台上创建新的应用程序。

我在返回基本 Activity 时遇到问题。

public boolean onOptionsItemSelected(MenuItem item) {
    int id = item.getItemId();
    if (id == R.id.action_settings) {
        setContentView(R.layout.setting_layout);
         ActionBar actionBar = getSupportActionBar();
         //Return to Base
         actionBar.setDisplayHomeAsUpEnabled(true);

    }
    return super.onOptionsItemSelected(item);
}

我尝试将 Manifest.xml 更改为:

<application 
    android:launchMode="singleTask"
<activity...
<meta-data android:name="android.support.PARENT_ACTIVITY"
    android:value=".TestParentActivity">
</meta-data>
</activity>

等等。

但是,这些不起作用。

请帮帮我。

谢谢。 最好的问候。

【问题讨论】:

  • 什么意思返回基础activity,返回什么?
  • 返回MainActivity..例如,如果用户点击设置,它将替换布局。但是,用户单击操作栏(返回主)然后它不起作用。
  • 您要更改布局还是返回MainActivity
  • 没错,我想改变布局或者回去。
  • 这就是我要问的,你想做哪一个

标签: android android-activity android-actionbar


【解决方案1】:

尝试在标签中使用 android:ParentActivityName:".MainActivity"

从 Android 4.1(API 级别 16)开始,您可以通过在元素中指定 android:parentActivityName 属性来声明每个 Activity 的逻辑父级。

如果您的应用支持 Android 4.0 及更低版本,请在您的应用中包含支持库并在 .然后将父活动指定为 android.support.PARENT_ACTIVITY 的值,匹配 android:parentActivityName 属性。

<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>

有关 ActionBar 导航的更多详细信息,请阅读 here

【讨论】:

    【解决方案2】:

    向上按钮 id 是android.R.id.home

    所以在你的 onOptionsItemSelected 你需要这个

    case android.R.id.home:
        NavUtils.navigateUpFromSameTask(this);
        return true;
    

    在清单中的活动中,您需要声明一个父活动标签

    android:parentActivityName
    

    【讨论】:

    • 谢谢,但它不起作用:&lt;activity android:name=".Setting" android:parentActivityName="MainActivity" android:label="@string/title_activity_setting"&gt; &lt;/activity&gt; 它是清单。然后是主页按钮if(id == R.id.home){ NavUtils.navigateUpFromSameTask(this); return true; }
    • 你需要你的activity类的完整路径
    • if(id == R.id.home) 有错误我认为它不叫“家”。因为我用 Toast 消息进行了测试,但它不起作用。
    • 在 onCreate() 中添加以下代码,然后查找 R.id.home ActionBar actionBar = getSupportActionBar(); actionBar.setDisplayHomeAsUpEnabled(true);
    • 你需要android.r.id.home
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-03-04
    • 2017-08-07
    • 1970-01-01
    • 2012-04-26
    • 2019-08-30
    • 2019-08-07
    • 1970-01-01
    相关资源
    最近更新 更多