Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/394.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/210.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用OnOptions ItemSelected和Kotlin启动新活动_Java_Android_Kotlin - Fatal编程技术网

Java 使用OnOptions ItemSelected和Kotlin启动新活动

Java 使用OnOptions ItemSelected和Kotlin启动新活动,java,android,kotlin,Java,Android,Kotlin,我是一个试图使用Kotlin学习Android Studio的新手。MyOnOptions ItemSelected()正在响应我将其设置为的活动。不知道我做错了什么。另外,onOptionsItemSelected是拥有响应导航栏的最佳方式吗 我尝试过实现Stack Overflow建议的几个选项,但大多数选项都已经使用了几年,或者对我的案例不起作用 这两个线程是我尝试使用的许多示例中的两个 第一项活动 import android.content.Intent import androi

我是一个试图使用Kotlin学习Android Studio的新手。My
OnOptions ItemSelected()
正在响应我将其设置为的活动。不知道我做错了什么。另外,
onOptionsItemSelected
是拥有响应导航栏的最佳方式吗

我尝试过实现Stack Overflow建议的几个选项,但大多数选项都已经使用了几年,或者对我的案例不起作用

这两个线程是我尝试使用的许多示例中的两个

第一项活动

import android.content.Intent
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.graphics.Color
import android.view.Menu
import android.view.MenuItem
import android.view.View
import android.widget.Button
import com.google.android.material.snackbar.Snackbar
import kotlinx.android.synthetic.main.activity_second2.*
import java.util.*
import kotlin.collections.ArrayList

class SinglePlayerActivity1 : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_second2)
        supportActionBar?.hide()
    }

    override fun onCreateOptionsMenu(menu: Menu?): Boolean {
        menuInflater.inflate(R.menu.nav_menu2, menu)
        return super.onCreateOptionsMenu(menu)
    }

    override fun onOptionsItemSelected(item: MenuItem): Boolean {
        return when (item.itemId){
            R.id.ic_home -> {
                startActivity(Intent( this, MainActivity::class.java))
                true
            }
            R.id.ic_people -> {
                startActivity(Intent( this, TwoPlayerActivity1::class.java))
                true
            }
            else -> super.onOptionsItemSelected(item)
        }
    }
nav_menu2.xml(菜单)


活动\u second2.xml(布局)


清单

    <com.google.android.material.bottomnavigation.BottomNavigationView
        android:id="@+id/bottom_navigation"
        android:layout_width="420dp"
        android:layout_height="60dp"
        android:background="?android:attr/windowBackground"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.555"
        app:layout_constraintStart_toStartOf="parent"
        app:menu="@menu/nav_menu2" />
    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/Theme.TicTacToe">
        <activity android:name=".TwoPlayerActivity1" />
        <activity android:name=".SinglePlayerActivity1" />
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>


菜单中的两个项目(主页和两个播放器)没有响应。

您正在调用
supportActionBar?.hide()
,这让我觉得您没有使用活动的内置ActionBar。你正在使用工具栏吗?如果要将其连接到
oncreateoptions菜单
onoptionsinselected
回调,则需要调用
setActionBar(toolbar)
actionBar=toolbar
(Kotlin)

编辑:
您使用的是BottomNavigationView,因此在这种情况下,您可能根本不想使用工具栏或OnOptions项目系统,而是使用OnNavigationItemSelectedListener。查看此项了解更多信息:

您正在调用
supportActionBar?.hide()
,这让我觉得您没有使用活动的内置ActionBar。你正在使用工具栏吗?如果要将其连接到
oncreateoptions菜单
onoptionsinselected
回调,则需要调用
setActionBar(toolbar)
actionBar=toolbar
(Kotlin)

编辑:
您使用的是BottomNavigationView,因此在这种情况下,您可能根本不想使用工具栏或OnOptions项目系统,而是使用OnNavigationItemSelectedListener。查看此链接了解更多信息:

您能澄清您的问题吗?预期的和实际的行为是什么?这里似乎没有什么明显的问题。菜单项ID有一个奇怪的命名约定。我看到他们被命名为
ic\u home
ic\u people
,而
ic\u
前缀通常用于可绘图(“ic”代表“图标”),但这不会引起任何问题。嗨!谢谢你的回复。我用图片编辑了这篇文章,希望它能澄清!你能澄清你的问题是什么吗?预期的和实际的行为是什么?这里似乎没有什么明显的问题。菜单项ID有一个奇怪的命名约定。我看到他们被命名为
ic\u home
ic\u people
,而
ic\u
前缀通常用于可绘图(“ic”代表“图标”),但这不会引起任何问题。嗨!谢谢你的回复。我用图片编辑了这篇文章,希望它能澄清!谢谢,我来看看工具栏!嘿,伙计,这很有效!谢谢:)祝你假期愉快!谢谢,我来看看工具栏!嘿,伙计,这很有效!谢谢:)祝你假期愉快!
    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/Theme.TicTacToe">
        <activity android:name=".TwoPlayerActivity1" />
        <activity android:name=".SinglePlayerActivity1" />
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>