Android:在具有固定标题的操作栏上显示微调器

时间:2015-04-17 12:54:10

标签: android android-actionbar android-spinner

我希望操作栏中有一个微调器,显示标题Options 始终,无论选择哪一个。

此时,上方框会在选中后立即显示所选项。

我怎么能得到那个?

enter image description here

这是我的代码

        MenuItem menuItem = menu.findItem(R.id.actionbar_nextevents);
        if (menuItem!=null){
            Spinner spinner = (Spinner) MenuItemCompat.getActionView(menuItem);
            List<String> list = new ArrayList<String>();
            list.add("Option 1");
            list.add("Option 2");
            list.add("Option 3");
            spinner.setAdapter(new ArrayAdapter<String>(this, R.layout.listitem_nextevents, R.id.option, list));
        }

3 个答案:

答案 0 :(得分:0)

你试过这个:

    MenuItem menuItem = menu.findItem(R.id.actionbar_nextevents);
if (menuItem != null) {
    Spinner spinner = (Spinner) MenuItemCompat.getActionView(menuItem);
    List<String> list = new ArrayList<String>();
    list.add("Options ");
    list.add("Option 1");
    list.add("Option 2");
    list.add("Option 3");
    spinner.setAdapter(new ArrayAdapter<String>(this,
            R.layout.listitem_nextevents, R.id.option, list));
    spinner.setSelection(0);
}

答案 1 :(得分:0)

尝试以下代码

打开menu.xml并粘贴到代码

下面
<item
        android:title="select city"
        android:id="@+id/my_menu_spinner"
        yourapp:actionViewClass="android.widget.Spinner"
        yourapp:showAsAction="ifRoom"/>
活动类中的

覆盖onCreateOptionMenu()方法并写下代码

 @Override
    public boolean onCreateOptionsMenu(Menu menu) {

        MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.menu.main, menu);
        spinner = (Spinner) menu.findItem(R.id.my_menu_spinner)
                .getActionView(); // find the spinner
            citieslist.add(cityName);
        }

        ArrayAdapter mSpinnerAdapter = new ArrayAdapter<String>(
                this.getSupportActionBar().getThemedContext(),                         R.layout.spinner_item, citieslist);
        mSpinnerAdapter
                .setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        spinner.setAdapter(mSpinnerAdapter);
return true

}

在布局中创建文件spinne_item.xml并粘贴到代码

下面
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:gravity="top"
    android:singleLine="true"
    android:textColor="#455560" />

答案 2 :(得分:0)

那些仍在苦苦挣扎的人的迟到回复!

你的微调器的第一个选项应该是你的头衔! 那么当你处理每个选项时,只需将这一行放在最后。spinner.setSelection(0); 这样,每次选择一个选项时,标题都会成为第一个选项

示例:

switch (position) {
                case 0:
                   //my other methods and...

                    spinner.setSelection(0);
                    break;

                case 1:
                    //my other methods and...

                    spinner.setSelection(0);
                    break;
                case 2:
                    //my other methods and...

                    spinner.setSelection(0);
                    break;