向操作栏面板添加操作

时间:2014-04-01 08:14:39

标签: android android-actionbar android-support-library

我想在操作栏中添加操作,但它会在操作栏中显示为下拉列表。 如何在操作栏中添加按钮? 我的代码是:

<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/action_search"
      android:icon="@drawable/ic_action_search"
      android:title="Add"
      showAsAction="ifRoom"/>
</menu>

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

2 个答案:

答案 0 :(得分:4)

如果您使用android.app.Activity,只需将showAsAction="always"更改为"android:showAsAction="always"

如果您使用android.support.v7.app.Activity,请按以下方式更改代码:

<menu xmlns:android="http://schemas.android.com/apk/res/android"
      xmlns:app="http://schemas.android.com/apk/res-auto">

    <item android:id="@+id/action_search"
        android:icon="@drawable/ic_action_search"
        android:title="Add"
        app:showAsAction="ifRoom"/>
</menu>

答案 1 :(得分:-1)

您只需将另外一项添加到菜单中,并将该菜单扩展到您的活动中....         如下所示,您将添加按钮并将该按钮访问到您的活动中......

    <?xml version="1.0" encoding="utf-8"?>
    <menu xmlns:android="http://schemas.android.com/apk/res/android" >

        <item
            android:id="@+id/refresh"
            android:icon="@android:drawable/stat_notify_sync"
            showAsAction="ifRoom"/>
        <item
            android:id="@+id/action_bar_button_cancel"
            android:focusableInTouchMode="true"
            android:icon="@android:drawable/ic_menu_close_clear_cancel"
            showAsAction="ifRoom"/>

    </menu>

如下所示给菜单充气.....

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

操作栏项目中的访问方法是....

@Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
        case R.id.refresh:  
                          //logic       
            return true;
                case R.id.action_bar_button_cancel:
                          //logic       
                       return true;

        default:
            return super.onOptionsItemSelected(item);
        }
    }

如果您有任何疑问,请