[英]How do I open a new page on menu item select in Kotlin?
I have an options menu in my app with a single item:我的应用程序中有一个选项菜单,其中包含一个项目:
The menu is defined in main.xml
:菜单在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>
The menu seems to be built in MainActivity.kt
:菜单似乎是在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
}
I've created a simple Activity that I would like to display when the About item is selected from the menu defined in activity_about.xml
:我创建了一个简单的 Activity,当从activity_about.xml
定义的菜单中选择 About 项时,我想显示它:
<?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>
And an associated class in About.kt
:以及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)
}
}
How do I display the About activity when the About menu item is clicked?单击“关于”菜单项时如何显示“关于”活动?
You need override method onOptionsItemSelected
and handle click on your item.您需要覆盖方法onOptionsItemSelected
并处理对您的项目的点击。 Java example: 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);
}
}
Add this in your MainActivity :在您的 MainActivity 中添加:
override fun onOptionsItemSelected(item: MenuItem): Boolean {
when(item.itemId)
{R.id.action_about -> startActivity(Intent(this , About::class.java)) }
return true
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.