Kotlin Android掷骰子应用程序:点击“为什么?”;重置";巴顿,它什么都没做?

Kotlin Android掷骰子应用程序:点击“为什么?”;重置";巴顿,它什么都没做?,android,kotlin,Android,Kotlin,我正在创建一个掷骰子应用程序。屏幕上有两个按钮,一个是“滚动”,另一个是“复位”。当点击“滚动”时,它将滚动两个随机值不同的骰子。现在,我想为“重置”设置功能,以便在单击时填充空屏幕。我做了,但点击“重置”后什么也没发生 这是我的Mainactivity.kt代码 package com.example.mydiceroller <br /> import androidx.appcompat.app.AppCompatActivity <br /> import an

我正在创建一个掷骰子应用程序。屏幕上有两个按钮,一个是“滚动”,另一个是“复位”。当点击“滚动”时,它将滚动两个随机值不同的骰子。现在,我想为“重置”设置功能,以便在单击时填充空屏幕。我做了,但点击“重置”后什么也没发生

这是我的Mainactivity.kt代码

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()函数时使整个屏幕为空。