在操作栏中添加下拉项
Adding a drop-down item in the action bar
我知道这里已经有人问过这个问题了:How to add a Dropdown item on the action bar
我正在尝试实施解决方案,但无法弄清楚 Kotlin 代码以使其发挥作用。抱歉,我还是 Android 开发的新手。
我创建了 overflow_menu.xml:
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:yourapp="http://schemas.android.com/apk/res-auto" >
<item android:id="@+id/spinner"
android:title="haveri"
yourapp:showAsAction="ifRoom"
yourapp:actionViewClass="android.widget.Spinner" />
</menu>
然后我尝试将这段代码翻译成 Kotlin:
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_layout, menu);
MenuItem item = menu.findItem(R.id.spinner);
Spinner spinner = (Spinner) MenuItemCompat.getActionView(item); // get the spinner
spinner.setAdapter(adapter);
spinner.setOnItemSelectedListener(onItemSelectedListener);
我尝试了以下方法:
override fun onCreateOptionsMenu(menu: Menu?): Boolean {
super.onCreateOptionsMenu(menu)
getMenuInflater().inflate(R.menu.overflow_menu, menu)
val item = menu?.findItem(R.id.spinner)
val spinner = MenuItemCompat.getActionView(item) as (Spinner) // get the spinner
spinner.adapter = adapter
spinner.setOnItemSelectedListener(onItemSelectedListener);
}
但是我不明白这里的适配器是什么?有人可以指点我相关的文件吗?
非常感谢
您可以创建一个简单的适配器与微调器一起使用:
ArrayAdapter.createFromResource(
this,
R.array.planets_array,
android.R.layout.simple_spinner_item
).also { adapter ->
// 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
spinner.adapter = adapter
}
将此添加到 res/values/arrays。xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="planets_array">
<item>Mercury</item>
<item>Venus</item>
<item>Earth</item>
<item>Mars</item>
<item>Jupiter</item>
<item>Saturn</item>
<item>Uranus</item>
<item>Neptune</item>
</string-array>
</resources>
我从官方文档中的示例中获取了该代码:
旋转器:https://developer.android.com/guide/topics/ui/controls/spinner
我知道这里已经有人问过这个问题了:How to add a Dropdown item on the action bar
我正在尝试实施解决方案,但无法弄清楚 Kotlin 代码以使其发挥作用。抱歉,我还是 Android 开发的新手。
我创建了 overflow_menu.xml:
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:yourapp="http://schemas.android.com/apk/res-auto" >
<item android:id="@+id/spinner"
android:title="haveri"
yourapp:showAsAction="ifRoom"
yourapp:actionViewClass="android.widget.Spinner" />
</menu>
然后我尝试将这段代码翻译成 Kotlin:
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_layout, menu);
MenuItem item = menu.findItem(R.id.spinner);
Spinner spinner = (Spinner) MenuItemCompat.getActionView(item); // get the spinner
spinner.setAdapter(adapter);
spinner.setOnItemSelectedListener(onItemSelectedListener);
我尝试了以下方法:
override fun onCreateOptionsMenu(menu: Menu?): Boolean {
super.onCreateOptionsMenu(menu)
getMenuInflater().inflate(R.menu.overflow_menu, menu)
val item = menu?.findItem(R.id.spinner)
val spinner = MenuItemCompat.getActionView(item) as (Spinner) // get the spinner
spinner.adapter = adapter
spinner.setOnItemSelectedListener(onItemSelectedListener);
}
但是我不明白这里的适配器是什么?有人可以指点我相关的文件吗? 非常感谢
您可以创建一个简单的适配器与微调器一起使用:
ArrayAdapter.createFromResource(
this,
R.array.planets_array,
android.R.layout.simple_spinner_item
).also { adapter ->
// 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
spinner.adapter = adapter
}
将此添加到 res/values/arrays。xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="planets_array">
<item>Mercury</item>
<item>Venus</item>
<item>Earth</item>
<item>Mars</item>
<item>Jupiter</item>
<item>Saturn</item>
<item>Uranus</item>
<item>Neptune</item>
</string-array>
</resources>
我从官方文档中的示例中获取了该代码:
旋转器:https://developer.android.com/guide/topics/ui/controls/spinner