如何在 Android Honeycomb 中的 Action Bar 添加第二个下拉列表?

发布于 2024-11-02 14:04:27 字数 243 浏览 1 评论 0 原文

上周我一直在使用 Honeycomb,并且很难在操作栏中找到多个下拉列表的内容。 我使用了教程并成功添加了一个下拉菜单列出它。但我不知道如何添加另一个。如果您知道该怎么做,请告诉我。 谢谢。

PS 还有一点,我怎样才能改变操作栏中元素的位置(这是题外话)?

I've been playing with Honeycomb for the last week and had a hard time to find something about more than one drop-down list in Action Bar.
I've used this tutorial and successfully added one drop-down list to it. But I don't know how to add another one. Please tell me if you know how to do it.
Thanks.

P.S. also one little this how can I change the position of elements in Action Bar(this is off topic)?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

深爱成瘾 2024-11-09 14:04:27

不确定 Honeycomb,但我能够在 JellyBean 中的操作栏中添加两个下拉列表,而无需使用自定义视图。

res/menu/main_menu.xml

<menu xmlns:android="http://schemas.android.com/apk/res/android" >
  <item
    android:id="@+id/menu_main_spinner"
    android:actionViewClass="android.widget.Spinner"
    android:showAsAction="always"/>
  <item
    android:id="@+id/menu_status_spinner"
    android:actionViewClass="android.widget.Spinner"
    android:showAsAction="always"/>
</menu>

MyActivity.java

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate( R.menu.main_menu, menu );

    MenuItem mainMenuSpinner = menu.findItem( R.id.menu_main_spinner);
    setupMainMenuSpinner( mainMenuSpinner );

    MenuItem statusSpinner = menu.findItem( R.id.menu_status_spinner );
    setupStatusSpinner( statusSpinner );

    return super.onCreateOptionsMenu(menu);
}

private void setupMainMenuSpinner(MenuItem item) {
    View view = item.getActionView();
    if (view instanceof Spinner) {
        Spinner spinner = (Spinner) view;
        spinner.setAdapter(ArrayAdapter.createFromResource(this,
                R.array.main_menu_options,
                android.R.layout.simple_spinner_dropdown_item));
    }
}

private void setupStatusSpinner(MenuItem item) {
    View view = item.getActionView();
    if (view instanceof Spinner) {
        Spinner spinner = (Spinner) view;
        spinner.setAdapter(ArrayAdapter.createFromResource(this,
                R.array.status,
                android.R.layout.simple_spinner_dropdown_item));
    }
}

Not sure about Honeycomb but I was able to add two drop down lists to my action bar in JellyBean without using a custom view.

res/menu/main_menu.xml

<menu xmlns:android="http://schemas.android.com/apk/res/android" >
  <item
    android:id="@+id/menu_main_spinner"
    android:actionViewClass="android.widget.Spinner"
    android:showAsAction="always"/>
  <item
    android:id="@+id/menu_status_spinner"
    android:actionViewClass="android.widget.Spinner"
    android:showAsAction="always"/>
</menu>

MyActivity.java

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate( R.menu.main_menu, menu );

    MenuItem mainMenuSpinner = menu.findItem( R.id.menu_main_spinner);
    setupMainMenuSpinner( mainMenuSpinner );

    MenuItem statusSpinner = menu.findItem( R.id.menu_status_spinner );
    setupStatusSpinner( statusSpinner );

    return super.onCreateOptionsMenu(menu);
}

private void setupMainMenuSpinner(MenuItem item) {
    View view = item.getActionView();
    if (view instanceof Spinner) {
        Spinner spinner = (Spinner) view;
        spinner.setAdapter(ArrayAdapter.createFromResource(this,
                R.array.main_menu_options,
                android.R.layout.simple_spinner_dropdown_item));
    }
}

private void setupStatusSpinner(MenuItem item) {
    View view = item.getActionView();
    if (view instanceof Spinner) {
        Spinner spinner = (Spinner) view;
        spinner.setAdapter(ArrayAdapter.createFromResource(this,
                R.array.status,
                android.R.layout.simple_spinner_dropdown_item));
    }
}
陪你到最终 2024-11-09 14:04:27

你必须自己做这件事。使用 setNavigationMode() >setCustomView()

PS 还有一点,我如何更改操作栏中元素的位置(这不是主题)?

一般来说,你不能。您可以控制顺序(例如,工具栏按钮通过它们在选项菜单 XML 中的顺序)。差不多就这样了。

You would have to do that yourself. Instead of setNavigationMode(), use setCustomView().

P.S. also one little this how can I change the position of elements in Action Bar(this is off topic)?

Generally, you can't. You control the order (e.g., toolbar buttons via the order they are in your options menu XML). That's pretty much it.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文