Java 具有imageview可见性的Connect开关语句
所以我试着做一个小赌博游戏,玩家按下一个按钮,然后一个看不见的图像再次变为可见,显示他得到了哪张图片 我试图通过制作一个随机数生成器和使用switch语句来实现这一点,但我的图片不会再次可见 这是我的java文件Java 具有imageview可见性的Connect开关语句,java,android,switch-statement,Java,Android,Switch Statement,所以我试着做一个小赌博游戏,玩家按下一个按钮,然后一个看不见的图像再次变为可见,显示他得到了哪张图片 我试图通过制作一个随机数生成器和使用switch语句来实现这一点,但我的图片不会再次可见 这是我的java文件 package serchgoodswing.gamblegame; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import
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;
int结果;
如果(generatedNumber>=1&&generatedNumber=501&&generatedNumber=601&&generatedNumber=651&&generatedNumber您应该尝试对这些情况使用不同的值。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;
int结果;
如果(generatedNumber>=1&&generatedNumber=501&&generatedNumber=601&&generatedNumber=651&&generatedNumber您认为案例1-500的意思是什么?为什么?我是java新手,所以我的代码肯定会有一些错误。我想案例1-500会检查生成的数字是否在1到500之间,如果是这样的话,它会设置为ImageView再次可见,但既然你问了,我认为它意味着其他东西?@PM77-1我忘了提到你的名字,但无法编辑我的评论。1-500
被评估为-499
。你还没有回答我问题的第二部分:为什么你认为case
语法支持范围?你在哪里看到这种语法或者在Java中?你认为案例1-500是什么意思?为什么?我是Java新手,所以我的代码肯定会有一些错误。我想案例1-500会检查生成的数字是否在1到500之间,如果是这样的话,它会再次设置ImageView可见,但现在你问我,我假设它意味着其他东西?@PM77-1我忘了提到你的名字,但不能编辑我的评论。1-500
的计算结果为-499
。你还没有回答我问题的第二部分:为什么你认为case
语法支持范围?你在Java中从何处看到这种语法?很抱歉问一下,使用result变量和generate是什么意思d?public void generate(视图视图){Random rand=new Random();int generatedNumber=rand.nextInt(999)+1;开关(结果){case 1:reward1.setVisibility(View.VISIBLE);break;case 2:reward2.setVisibility(View.VISIBLE);中断;案例3:reward3.setVisibility(View.VISIBLE);中断;案例4:reward4.setVisibility(View.VISIBLE);break;抱歉,代码的格式不正确。无论如何,只要在代码结果中使用generatedNumber进行切换就可以了。然后将大小写更改为使用1、2、3、4,而不是范围。很抱歉问一下,使用结果变量和生成的?public void generate是什么意思(视图){Random rand=new Random();int generatedNumber=rand.nextInt(999)+1;开关(结果){case 1:reward1.setVisibility(View.VISIBLE);break;case 2:reward2.setVisibility(View.VISIBLE);中断;案例3:reward3.setVisibility(View.VISIBLE);中断;案例4:reward4.setVisibility(View.VISIBLE);break;抱歉,代码的格式不正确。无论如何,只需在代码结果中使用generatedNumber切换即可。然后将大小写更改为使用1、2、3、4而不是范围。