所以我想做一个小赌博游戏,玩家按下一个按钮,然后一个看不见的图像再次可见,显示他得到的图片。
我尝试通过制作随机数生成器并使用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>
我错了什么?有人有解决方案吗?
答案 0 :(得分:0)
您应该尝试为案例使用不同的值。 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语句。