本文概述
- Kotlin Android选项菜单示例
- 使用操作栏上的图像创建选项菜单
【Kotlin Android选项菜单】通过覆盖onCreateOptionsMenu()函数来创建选项菜单。通过调用MenuInflater类的inflate()方法来扩展菜单资源。要对菜单项执行操作, 请覆盖onOptionsItemSelected()函数。
Kotlin Android选项菜单示例 在此示例中, 我们将在操作栏上添加选项菜单项。单击菜单会显示选项菜单项, 我们可以在这些菜单项上执行相关操作。
创建一个android项目, 然后选择基本活动。此活动将自动为菜单选项和工具栏生成代码。
activity_main.xml
将以下代码添加到布局目录中的activity_main.xml文件中。创建基本活动时会自动生成此代码。
<
?xml version="1.0" encoding="utf-8"?>
<
android.support.design.widget.CoordinatorLayout 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:layout_width="match_parent"android:layout_height="match_parent"tools:context="example.srcmini.com.kotlinoptionsmenu.MainActivity">
<
android.support.design.widget.AppBarLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:theme="@style/AppTheme.AppBarOverlay">
<
android.support.v7.widget.Toolbarandroid:id="@+id/toolbar"android:layout_width="match_parent"android:layout_height="?attr/actionBarSize"android:background="?attr/colorPrimary"app:popupTheme="@style/AppTheme.PopupOverlay" />
<
/android.support.design.widget.AppBarLayout>
<
include layout="@layout/content_main" />
<
/android.support.design.widget.CoordinatorLayout>
content_main.xml
在布局目录的content_main.xml文件中添加以下代码。在这种布局中, 你可以放置??UI组件。
<
?xml version="1.0" encoding="utf-8"?>
<
android.support.constraint.ConstraintLayout 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:layout_width="match_parent"android:layout_height="match_parent"app:layout_behavior="@string/appbar_scrolling_view_behavior"tools:context="example.srcmini.com.kotlinoptionsmenu.MainActivity"tools:showIn="@layout/activity_main">
<
TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="Hello World!"app:layout_constraintBottom_toBottomOf="parent"app:layout_constraintLeft_toLeftOf="parent"app:layout_constraintRight_toRightOf="parent"app:layout_constraintTop_toTopOf="parent" />
<
/android.support.constraint.ConstraintLayout>
strings.xml
在strings.xml文件中添加以下代码。
<
resources>
<
string name="app_name">
Kotlin OptionsMenu<
/string>
<
string name="action_settings">
Settings<
/string>
<
string name="action_share">
Share<
/string>
<
string name="action_exit">
Exit<
/string>
<
/resources>
menu_main.xml
在菜单目录的menu_main.xml文件中添加以下代码。添加item标签, 该标签创建用于options菜单的菜单项。
<
menu 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"tools:context="example.srcmini.com.kotlinoptionsmenu.MainActivity">
<
itemandroid:id="@+id/action_settings"android:orderInCategory="100"android:title="@string/action_settings"/>
<
itemandroid:id="@+id/action_share"android:title="@string/action_share"app:showAsAction="never"/>
<
itemandroid:id="@+id/action_exit"android:title="@string/action_exit"app:showAsAction="never"/>
<
/menu>
MainActivity.kt
在MainActivity.kt类中添加以下代码。在此类中, 我们重写onCreateOptionsMenu()函数, 并调用MenuInflater类的inflate(), 该类可使菜单膨胀并向操作栏添加项目。
要对选项的每个项目执行操作, 菜单将覆盖onOptionsItemSelected()函数。
package example.srcmini.com.kotlinoptionsmenuimport android.os.Bundleimport android.support.v7.app.AppCompatActivityimport android.view.Menuimport android.view.MenuItemimport android.widget.Toastimport kotlinx.android.synthetic.main.activity_main.*class MainActivity : AppCompatActivity() {override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)setContentView(R.layout.activity_main)setSupportActionBar(toolbar)}override fun onCreateOptionsMenu(menu: Menu): Boolean {// Inflate the menu;
this adds items to the action bar if it is present.menuInflater.inflate(R.menu.menu_main, menu)return true}override fun onOptionsItemSelected(item: MenuItem): Boolean {return when (item.itemId) {R.id.action_settings ->
{Toast.makeText(applicationContext, "click on setting", Toast.LENGTH_LONG).show()true}R.id.action_share ->
{Toast.makeText(applicationContext, "click on share", Toast.LENGTH_LONG).show()return true}R.id.action_exit ->
{Toast.makeText(applicationContext, "click on exit", Toast.LENGTH_LONG).show()return true}else ->
super.onOptionsItemSelected(item)}}}
输出:
文章图片
文章图片
文章图片
使用操作栏上的图像创建选项菜单 我们还可以在操作栏上将选项菜单显示为图像。要在选项菜单中设置图像, 请在项目标签中添加图标属性, 如下所示。
menu_main.xml
<
menu 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"tools:context="example.srcmini.com.kotlinoptionmenu.MainActivity">
<
itemandroid:id="@+id/action_settings"android:orderInCategory="100"android:title="@string/action_settings"android:icon="@android:drawable/btn_star" />
<
itemandroid:id="@+id/action_share"android:title="@string/action_share"app:showAsAction="ifRoom"android:icon="@drawable/shareimage"/>
<
itemandroid:id="@+id/action_exit"android:title="@string/action_exit"app:showAsAction="ifRoom"android:icon="@drawable/exitimage"/>
<
/menu>
推荐阅读
- Kotlin Android弹出菜单
- Kotlin Android通知
- Kotlin Android媒体播放器
- Kotlin Android Google Map当前位置
- Kotlin Android隐式Intent
- 使用URL的Kotlin Android JSON解析
- Kotlin Android Google Map固定位置
- Kotlin Android Google地图搜索位置
- Android Firebase身份验证-Google登录