操作栏上的下拉菜单

Roo*_*kie 17 android android-actionbar

我正在使用动作栏处理Android应用程序菜单,我想将下拉菜单放在操作栏中,就像谷歌地图应用程序中的那样. Google Maps ActionBar

有人能帮助我吗?如何实现这一点请指出一些我可以遵循的简单教程.

tpb*_*app 11

将此添加到您的活动onCreate()方法:

// Adapter
SpinnerAdapter adapter =
        ArrayAdapter.createFromResource(this, R.array.actions,
        android.R.layout.simple_spinner_dropdown_item);

// Callback
OnNavigationListener callback = new OnNavigationListener() {

    String[] items = getResources().getStringArray(R.array.actions); // List items from res

    @Override
    public boolean onNavigationItemSelected(int position, long id) {

        // Do stuff when navigation item is selected

        Log.d("NavigationItemSelected", items[position]); // Debug

        return true;

    }

};

// Action Bar
ActionBar actions = getActionBar();
actions.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);
actions.setDisplayShowTitleEnabled(false);
actions.setListNavigationCallbacks(adapter, callback);
Run Code Online (Sandbox Code Playgroud)

此示例需要列表项的数组资源:

RES /值/ arrays.xml

<string-array name="actions">
    <item>Item 1</item>
    <item>Item 2</item>
    <item>Item 3</item>
</string-array>
Run Code Online (Sandbox Code Playgroud)

或者,您可以创建自己的适配器和从SpinnerAdapter扩展的布局,以显示更高级或动态的列表项.

要使onCreate代码上的活动更整洁,您还可以更改Activity以实现OnNavigationListener并使用回调代码添加覆盖onNavigationItemSelected.然后在setListNavigationCallbacks()方法中将"callback"更改为"this".

请注意,您需要为操作栏定位API 11+,否则您将需要添加版本检查或支持库.