添加一个动作

2018-08-08  本文已影响7人  鹿小纯0831

您的应用应该可以让用户轻松找到返回应用主屏幕的方式。 一种简单的方法是在应用栏上为除主要活动之外的所有活动提供“向上”按钮。 当用户选择“向上”按钮时,应用程序将导航到父活动。

本课程向您展示如何通过在清单中声明活动的父级并启用应用栏的“向上”按钮来向活动添加“向上”按钮。
导航架构组件(目前处于alpha状态)是另一种处理应用程序导航的方法。 当用户点击向上按钮时,API可以处理从您应用中的当前屏幕向上导航。 要了解更多信息,请参阅导航架构组件。

一、声明父活动

要支持活动中的向上功能,您需要声明活动的父级。 您可以通过设置android:parentActivityName属性在应用程序清单中执行此操作。

android:parentActivityName属性是在Android 4.1(API级别16)中引入的。 要支持使用旧版Android的设备,请定义<meta-data>名称 - 值对,其名称为“android.support.PARENT_ACTIVITY”,值为父活动的名称。

例如,假设您的应用具有名为MainActivity的主要活动和单个子活动。 以下清单代码声明了这两个活动,并指定了父/子关系:

<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.MyChildActivity"
        android:label="@string/title_activity_child"
        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>

二、启用向上按钮

要为具有父活动的活动启用“向上”按钮,请调用应用栏的setDisplayHomeAsUpEnabled()方法。 通常,您会在创建活动时执行此操作。 例如,以下onCreate()方法将工具栏设置为MyChildActivity的应用栏,然后启用该应用栏的“向上”按钮:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_my_child);

    // my_child_toolbar is defined in the layout file
    Toolbar myChildToolbar =
        (Toolbar) findViewById(R.id.my_child_toolbar);
    setSupportActionBar(myChildToolbar);

    // Get a support ActionBar corresponding to this toolbar
    ActionBar ab = getSupportActionBar();

    // Enable the Up button
    ab.setDisplayHomeAsUpEnabled(true);
}

您不需要在活动的onOptionsItemSelected()方法中捕获up动作。 相反,该方法应调用其超类,如响应操作中所示。 超类方法通过导航到父活动响应Up选项,如应用清单中指定的那样。

上一篇 下一篇

猜你喜欢

热点阅读