因此,我不是新的编程,但新的Java和目前学习Kotlin通过谷歌提供的课程。我到达骰子辊应用程序,并决定做实践对您的挑战在每一届会议结束时在那里我必须滚动2骰子与1滚动按钮,但不能这样做。
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val rollButton: Button = findViewById(R.id.button)
rollButton.setOnClickListener{ rollDice(dice1) }; **//Error**
rollButton.setOnClickListener{ rollDice(dice2) }; **//Error**
}
private fun rollDice(dice: ImageView) {
val myDice = Dice(6);
val diceRoll: Int = myDice.roll();
val diceImage: ImageView = findViewById(R.id.dice) **//ERROR**
diceImage.contentDescription = diceRoll.toString()
val drawableResource = when (diceRoll) {
1 -> R.drawable.dice_1
2 -> R.drawable.dice_2
3 -> R.drawable.dice_3
4 -> R.drawable.dice_4
5 -> R.drawable.dice_5
else -> R.drawable.dice_6
}
diceImage.setImageResource(drawableResource)
}}
class Dice(private val numSides: Int) {
fun roll(): Int{
return (1..numSides).random()
}
}
1条答案
按热度按时间bkhjykvo1#
您已经修改了
rollDice
函数以接受ImageView参数,因此可以删除此行:并且可以更改设置图像的行,以使用传递给函数的参数(命名为
dice
):当你调用这个函数时,你必须传递ImageView,所以你需要在传递之前创建变量来找到那些ImageView。另外,你一次只能设置一个click监听器。你需要在一个click监听器中调用
rollDice
函数两次。你尝试这样做的方式是,当你设置第二个click监听器时,第一个click监听器会被擦除。