尝试切换片段时未解决的参考
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
引用它
我做错了什么?
我正在尝试在单击按钮时执行一个简单的片段切换,但它一直在第 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