Kotlin Android选项菜单

本文概述

  • Kotlin Android选项菜单示例
  • 使用操作栏上的图像创建选项菜单
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)}}}

输出:
Kotlin Android选项菜单

文章图片
Kotlin Android选项菜单

文章图片
Kotlin Android选项菜单

文章图片
使用操作栏上的图像创建选项菜单 我们还可以在操作栏上将选项菜单显示为图像。要在选项菜单中设置图像, 请在项目标签中添加图标属性, 如下所示。
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>

    推荐阅读