Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何在工具栏中的菜单旁边添加微调器_Android_Drop Down Menu_Android Spinner_Android Toolbar - Fatal编程技术网

Android 如何在工具栏中的菜单旁边添加微调器

Android 如何在工具栏中的菜单旁边添加微调器,android,drop-down-menu,android-spinner,android-toolbar,Android,Drop Down Menu,Android Spinner,Android Toolbar,我希望微调器位于工具栏中菜单的旁边(菜单的左侧),但当前微调器显示在菜单下方。我是否必须以某种方式将其添加到onCreateOptions菜单(菜单菜单菜单) 我的活动: protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_list); Toolbar

我希望微调器位于工具栏中菜单的旁边(菜单的左侧),但当前微调器显示在菜单下方。我是否必须以某种方式将其添加到
onCreateOptions菜单(菜单菜单菜单)

我的活动:

  protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_list);
        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);
        getSupportActionBar().setDisplayShowTitleEnabled(false);

 Spinner spinner = (Spinner) findViewById(R.id.travelType_spinner);
        // Create an ArrayAdapter using the string array and a default spinner layout
        ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this,
                R.array.travelType_array, R.layout.spinner_item);
        // Specify the layout to use when the list of choices appears
        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        // Apply the adapter to the spinner
        if (spinner != null) {
            spinner.setAdapter(adapter);
        }
<android.support.design.widget.AppBarLayout
        android:id="@+id/appBarLayout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:theme="@style/AppTheme.AppBarOverlay">

        <android.support.v7.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            android:background="?attr/colorPrimary"
            app:popupTheme="@style/AppTheme.PopupOverlay" />

        <Spinner
            android:id="@+id/travelType_spinner"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            />
    </android.support.design.widget.AppBarLayout>
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_列表);
Toolbar Toolbar=(Toolbar)findViewById(R.id.Toolbar);
设置支持操作栏(工具栏);
getSupportActionBar().setDisplayShowTitleEnabled(false);
微调器微调器=(微调器)findViewById(R.id.travelType\u微调器);
//使用字符串数组和默认微调器布局创建ArrayAdapter
ArrayAdapter=ArrayAdapter.createFromResource(此,
R.array.travelType_数组,R.layout.spinner_项);
//指定显示选项列表时要使用的布局
setDropDownViewResource(android.R.layout.simple\u微调器\u下拉菜单\u项);
//将适配器应用于微调器
如果(微调器!=null){
旋转器。设置适配器(适配器);
}
布局:

  protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_list);
        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);
        getSupportActionBar().setDisplayShowTitleEnabled(false);

 Spinner spinner = (Spinner) findViewById(R.id.travelType_spinner);
        // Create an ArrayAdapter using the string array and a default spinner layout
        ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this,
                R.array.travelType_array, R.layout.spinner_item);
        // Specify the layout to use when the list of choices appears
        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        // Apply the adapter to the spinner
        if (spinner != null) {
            spinner.setAdapter(adapter);
        }
<android.support.design.widget.AppBarLayout
        android:id="@+id/appBarLayout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:theme="@style/AppTheme.AppBarOverlay">

        <android.support.v7.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            android:background="?attr/colorPrimary"
            app:popupTheme="@style/AppTheme.PopupOverlay" />

        <Spinner
            android:id="@+id/travelType_spinner"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            />
    </android.support.design.widget.AppBarLayout>

Spinner\u item.xml

<TextView
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:textColor="@color/whiteText"
    android:textStyle="bold"
    android:padding="15dp"/>

添加菜单项

<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">
    <item
        android:id="@+id/spinner"
        android:title="ActionBar Spinner"
        app:actionViewClass="android.widget.Spinner"
        android:background="#ff00"
        app:showAsAction="always" />
</menu>

爪哇

@覆盖
公共布尔onCreateOptions菜单(菜单){
getMenuInflater().充气(R.menu.android\u action\u bar\u spinner\u菜单,菜单);
MenuItem=menu.findItem(R.id.spinner);
微调器微调器=(微调器)项。getActionView();
ArrayAdapter=ArrayAdapter.createFromResource(此,
R.array.spinner\u list\u item\u array,android.R.layout.simple\u spinner\u item);
setDropDownViewResource(android.R.layout.simple\u微调器\u下拉菜单\u项);
旋转器。设置适配器(适配器);
返回true;
}

<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="?attr/colorPrimaryDark"
    android:minHeight="?attr/actionBarSize"
    app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
     >

    <Spinner
        android:id="@+id/spinner_nav"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

</android.support.v7.widget.Toolbar>

除了上述答案之外,您的活动还需要实现onItemSelectedListener,并在onItemSelected方法中完成您的工作

您还需要告诉正在侦听的微调器,在OnCreateOptions菜单中,添加以下行:

spinner.setOnItemSelectedListener(this);

这将导致微调器调用活动的onItemSelected方法。

检查一次布局文件。微调器标记应位于工具栏标记之间,而不是在其结束后。我们如何为微调器添加onItemSelectedListener?在添加自定义列表的情况下,将适配器部分更改为
list myList=//您的data here;ArrayAdapter adapter=new ArrayAdapter(这个,android.R.layout.simple_spinner_item,myList);
嘿,它只为我显示微调器箭头,但图标不再显示