android - 如何在 Kotlin 中打开菜单项选择的新页面?
问题描述
我的应用程序中有一个选项菜单,其中包含一个项目:
菜单定义在main.xml
:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/action_about"
android:icon="@android:drawable/ic_menu_info_details"
android:orderInCategory="100"
android:title="@string/action_about"
app:showAsAction="never" />
</menu>
菜单似乎是内置的MainActivity.kt
:
override fun onCreateOptionsMenu(menu: Menu): Boolean {
// Inflate the menu; this adds items to the action bar if it is present.
menuInflater.inflate(R.menu.main, menu)
return true
}
我创建了一个简单的 Activity,当从定义的菜单中选择 About 项目时,我想显示它activity_about.xml
:
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.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"
tools:context=".About">
<TextView
android:id="@+id/aboutView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:linksClickable="false"
android:text="@string/author"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
和一个相关的类About.kt
:
package com.example.rollme
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
class About : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_about)
}
}
单击“关于”菜单项时如何显示“关于”活动?
解决方案
您需要覆盖方法onOptionsItemSelected
并处理单击您的项目。Java 示例:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if(id == R.id.action_about) {
startActivity(New Intent(this, About.class))
return true;
}else {
return super.onOptionsItemSelected(item);
}
}
推荐阅读
- sql - “()”在等级声明中做了什么
- amazon-web-services - 从 S3 提供的 AWS 无服务器网站中的 API 网关凭证存储在哪里?
- excel - VBA 安全通知 - “数据连接已被阻止”
- java - Java 8 日期等于空安全
- javascript - 如何在 React 中对对象中的“类别”数据进行排序
- javascript - 嵌入式 javascript - 访问控件
- php - 在变量中嵌套 php if/else 语句
- javascript - webRequest 侦听器看不到“cookie”、“referer”、“origin”等标头
- angular - 角度的渐进式 Web 应用程序在 ipad chrome 浏览器中刷新时离线显示
- c# - Akka.net 在处理消息时是否同步,不在事件处理程序中等待?