尝试切换片段时未解决的参考

Unresolved Reference when trying to switch Fragments

我做错了什么?

我正在尝试在单击按钮时执行一个简单的片段切换,但它一直在第 46 行返回错误,更具体地说 "v" 当(v.id){

错误: 未解决的参考:v

我的代码:

class MainActivity : AppCompatActivity(), View.OnClickListener {
   
    private lateinit var buttonHome: Button
    private lateinit var buttonConsoles: Button
    private lateinit var buttonGames: Button

    private lateinit var homeFragment: HomeFragment
    private lateinit var gameFragment: GameFragment
    private lateinit var consoleFragment: ConsoleFragment

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)

        setContentView(R.layout.activity_main)

        buttonHome = findViewById(R.id.button_home)
       
        buttonHome.setOnClickListener (this)
        buttonConsoles = findViewById(R.id.button_consoles)
        buttonConsoles.setOnClickListener(this)
        buttonGames = findViewById(R.id.button_games)
        buttonGames.setOnClickListener(this)

        homeFragment = HomeFragment()
        gameFragment = GameFragment()
        consoleFragment = ConsoleFragment()
    }

    private fun setFragment(fragment: Fragment){
        val fragmentTransaction = supportFragmentManager.beginTransaction()

        fragmentTransaction.replace(R.id.frame_fragments, fragment)
        fragmentTransaction.commit()
    }

     //ERROR HERE
     override fun onClick(p0: View) {
        when(v.id){
            R.id.button_home -> {
                setFragment(homeFragment)
            }

            R.id.button_games -> {
                setFragment(gameFragment)
            }

            R.id.button_consoles -> {
                setFragment(consoleFragment)
            }
        }
    }
}

您已将 View 参数命名为 onClick 方法 p0,而不是 v。您需要将其更改为 v 或通过 p0.id

引用它