Kotlin Android掷骰子应用程序:点击“为什么?”;重置";巴顿,它什么都没做?
我正在创建一个掷骰子应用程序。屏幕上有两个按钮,一个是“滚动”,另一个是“复位”。当点击“滚动”时,它将滚动两个随机值不同的骰子。现在,我想为“重置”设置功能,以便在单击时填充空屏幕。我做了,但点击“重置”后什么也没发生 这是我的Mainactivity.kt代码Kotlin Android掷骰子应用程序:点击“为什么?”;重置";巴顿,它什么都没做?,android,kotlin,Android,Kotlin,我正在创建一个掷骰子应用程序。屏幕上有两个按钮,一个是“滚动”,另一个是“复位”。当点击“滚动”时,它将滚动两个随机值不同的骰子。现在,我想为“重置”设置功能,以便在单击时填充空屏幕。我做了,但点击“重置”后什么也没发生 这是我的Mainactivity.kt代码 package com.example.mydiceroller <br /> import androidx.appcompat.app.AppCompatActivity <br /> import an
package com.example.mydiceroller <br />
import androidx.appcompat.app.AppCompatActivity <br />
import android.os.Bundle <br />
import android.widget.Button <br />
import android.widget.ImageView <br />
import android.widget.TextView <br />
import android.widget.Toast <br />
class MainActivity : AppCompatActivity() { <br />
lateinit var diceImage : ImageView <br />
lateinit var diceImage2 : ImageView <br />
lateinit var diceImage3 : ImageView <br />
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val rollButton: Button = findViewById(R.id.roll_button)
rollButton.setOnClickListener{rollDice()}
val resetButton: Button = findViewById(R.id.reset_button)
resetButton.setOnClickListener{resetDice()}
diceImage = findViewById(R.id.dice_image)
diceImage2 = findViewById(R.id.dice_image2)
diceImage3 = findViewById((R.id.dice_image3))
}
private fun rollDice() {
/*Toast.makeText(this,"button clicked", Toast.LENGTH_SHORT).show() //Display the toast */
diceImage.setImageResource(getRandomDiceImage())
diceImage2.setImageResource(getRandomDiceImage())
}
private fun getRandomDiceImage(): Int {
val randomInt = (1..6).random()
return when(randomInt){
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
}
}
private fun resetDice(){
diceImage3.setImageResource(R.drawable.empty_dice)
}
}
package com.example.mydiceroller
导入androidx.appcompat.app.AppCompatActivity
导入android.os.Bundle
导入android.widget.Button
导入android.widget.ImageView
导入android.widget.TextView
导入android.widget.Toast
类MainActivity:AppCompatActivity(){
lateinit变量diceImage:ImageView
lateinit变量diceImage2:ImageView
lateinit变量diceImage3:ImageView
重写FunonCreate(savedInstanceState:Bundle?{
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val rollButton:Button=findViewById(R.id.roll_按钮)
rollButton.setOnClickListener{rollDice()}
val resetButton:Button=findViewById(R.id.reset_按钮)
resetButton.setOnClickListener{resetDice()}
diceImage=findviewbyd(R.id.dice\u image)
diceImage2=findViewById(R.id.dice\u image2)
diceImage3=findViewById((R.id.dice_image3))
}
私人娱乐掷骰子(){
/*Toast.makeText(这个“点击的按钮”,Toast.LENGTH\u SHORT)。show()//显示Toast*/
diceImage.setImageResource(getRandomDiceImage())
diceImage2.setImageResource(getRandomDiceImage())
}
private fun getRandomDiceImage():Int{
val randomInt=(1..6).random()
当(randomInt){
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
}
}
私人娱乐重置骰子(){
diceImage3.setImageResource(R.drawable.empty_dice)
}
}
这是我的activity_main.xml代码
enter code here
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_gravity="center_vertical"
tools:context=".MainActivity" >
<ImageView
android:id="@+id/dice_image"
android:layout_width="wrap_content"
android:layout_height="147dp"
android:layout_gravity="center_horizontal"
android:src="@drawable/empty_dice"
tools:src="@drawable/dice_1" />
<ImageView <br />
android:id="@+id/dice_image2"
android:layout_width="wrap_content"
android:layout_height="111dp"
android:layout_gravity="center_horizontal"
android:src="@drawable/empty_dice"
tools:src="@drawable/dice_1" />
<ImageView
android:id="@+id/dice_image3"
android:layout_width="wrap_content"
android:layout_height="147dp"
android:layout_gravity="center_horizontal"
android:src="@drawable/empty_dice"
tools:src="@drawable/dice_1" />
<Button
android:id="@+id/roll_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/roll_label"
android:layout_gravity="center_horizontal" />
<Button
android:id="@+id/reset_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/reset_label"
android:layout_gravity="center_horizontal" />
</LinearLayout> <br />
在此处输入代码
现在,每当我点击“重置”按钮。它什么也不做。我无法理解我做错了什么。请帮助我进行配置。您没有将按钮与相应的方法/操作连接起来吗?你可以把这一行添加到你的
reset_按钮中
:android:onClick=resetDice
,然后再试一次…@deHaar我想我做到了。如果可以看到第二个onclickListener on resetDice()函数。那是你想说的吗?哦,是的。。。您已链接到该操作。是否调用了该方法?听众呢?你能通过调试或简单的logcat输出来检查吗?实际上我想让屏幕处于初始状态,即空状态。现在问题已经解决了。在resetDice()函数中完成了更正。谢谢。实际上,我必须在resetDice()函数中为另外两个图像视图对象设置空视图,以便在clickListener上调用resetDice()函数时使整个屏幕为空。