gpt4 book ai didi

java - 将 switch 语句与 imageview 可见性连接起来

转载 作者:太空宇宙 更新时间:2023-11-04 11:57:11 25 4
gpt4 key购买 nike

所以我正在尝试做一个小赌博游戏,玩家按下一个按钮,然后一个不可见的图像再次变得可见,显示他得到的图片。

我尝试通过制作随机数生成器并使用 switch 语句来实现这一目标,但我的图片不会再次可见。

这是我的java文件

package serchgoodswing.gamblegame;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;

import java.util.Random;

public class MainActivity extends AppCompatActivity {
public ImageView reward1;
public ImageView reward2;
public ImageView reward3;
public ImageView reward4;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);



}
public void generate (View view) {
Random rand= new Random();
int generatedNumber = rand.nextInt(999)+1;
switch (generatedNumber){
case 1-500:
reward1.setVisibility(View.VISIBLE);
break;
case 501-600:
reward2.setVisibility(View.VISIBLE);
break;
case 601-650:
reward3.setVisibility(View.VISIBLE);
break;
case 651-1000:
reward4.setVisibility(View.VISIBLE);
break;

}



}

}

这是我的activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="serchgoodswing.caseopening.MainActivity">


<Button
android:text="Button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_marginTop="165dp"
android:id="@+id/button"
android:onClick="generate" />

<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:srcCompat="@drawable/a"
android:id="@+id/reward1"
android:layout_marginBottom="75dp"
android:layout_alignBottom="@+id/button"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:visibility="invisible"/>

<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:srcCompat="@drawable/b"
android:id="@+id/reward2"
android:layout_alignBottom="@+id/button"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_marginLeft="11dp"
android:layout_marginStart="11dp"
android:layout_marginBottom="58dp"
android:visibility="invisible"/>

<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:srcCompat="@drawable/c"
android:id="@+id/reward3"
android:layout_alignBottom="@+id/reward1"
android:visibility="invisible"/>

<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:srcCompat="@drawable/d"
android:id="@+id/reward4"
android:layout_alignBottom="@+id/reward2"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:visibility="invisible"/>
</RelativeLayout>

我做错了什么?有人有解决办法吗?

最佳答案

您应该尝试针对不同情况使用不同的值。 Java 不喜欢 switch 语句的范围。有多种方法可以解决这个问题,但一个简单的解决方案是使用 if 语句将您的范围与生成的随机数进行比较。

int result;
if(generatedNumber >=1 && generatedNumber <= 500)
result = 1;
if(generatedNumber >=501 && generatedNumber <= 600)
result = 2;
if(generatedNumber >=601 && generatedNumber <= 650)
result = 3;
if(generatedNumber >=651 && generatedNumber <= 1000)
result = 4;

然后更改 switch 语句以使用结果变量与当前的 generatedNumber(范围)。

您还可以只向 if 语句添加逻辑并完全跳过 switch 语句。

关于java - 将 switch 语句与 imageview 可见性连接起来,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41269921/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com