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);
嘿,它只为我显示微调器箭头,但图标不再显示