正确地将项目添加到操作栏

时间:2015-12-27 17:05:35

标签: android xml

我需要帮助找出控制动作栏的正确方法。

在onCreate函数中,我添加了:

getSupportActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);
getSupportActionBar().setCustomView(R.layout.actionbar);

将actionbar.xml添加到布局文件夹中,其中包含3个项目:TextView(应用程序名称)和2个ImageViews。

它有效,我的意思是我可以看到这个新的动作栏,但我非常确定我做错了方法,在教程中我正在阅读他们正在谈论将这些项目添加到我无法找到的menu.xml文件,并使用onOptionsItemSelected函数来设置行为。

作为一名初学者,我会很感激地解释我在做什么,为什么会出错,以及如何使用menu.xml正确地做到这一点

1 个答案:

答案 0 :(得分:3)

好的,首先你是对的,Android有一个开箱即用的解决方案来放置" Action Button"和行动栏上的标题

1.Title

当你创建一个Activity时,它会在你的AndroidManifest.xml中添加一些代码,这是一个例子:

 <activity
        android:name="AddAddressActivity"
        android:label="@string/title_activity_add_address" >
    </activity>

所以你通过改变android:label来改变你的头衔,最好的做法就是你需要把你所有的字符串资产放在res / values / string.xml下这样

<string name="title_activity_add_address">Add New Address</string>
  1. 动作按钮
  2. 首先将此覆盖方法添加到您的活动

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.address_list, menu);
        return true;
    }
    

    稍后,您在res / menu文件夹下创建address_list.xml,在其中您可以将Action Button的列表放在那里

    <menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    tools:context="com.vi8e.giant.AddressListActivity">
    <item
        android:id="@+id/action_add"
        android:orderInCategory="100"
        android:showAsAction="always"
        android:icon="@drawable/ic_action_new"
        android:title="@string/action_save"/>
    

    Android:标题是放置您的菜单标题,当您长按菜单时,此标题会显示出来 Android:此处的图标是您要为菜单显示的图像,将图像放在res / drawable下

    编辑:忘了提及如何触发菜单 您可以在Activity上放置onOptionsItemSelected方法,这是示例

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
    
        case R.id.action_add:
            //do something
            break;
        default:
            break;
        }
        return super.onOptionsItemSelected(item);
    }
    

    注意:Action Bar的空间有限,所以如果你有很多菜单,它会崩溃成三个点&#34;右上角的图标