【发布时间】:2020-09-09 19:44:59
【问题描述】:
Android、java、工作室 4.0.1
尝试自己编写代码时,我遇到了一个我无法从编译器语句中理解的问题。 基本上,当您单击单选按钮时,会在 textview 字段中生成一个随机数。 我的问题是,在点击单选按钮的情况下编写的随机代码,编译器不接受。
代码如下:
package com.example.random;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.RadioButton;
import android.widget.TextView;
import java.util.Random;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void onRadioButtonClicked(View view) {
// Is the button now checked?
boolean checked = ((RadioButton) view).isChecked();
TextView MytextView = (TextView)findViewById(R.id.MytextView);
int random;
int random2;
// Check which radio button was clicked
switch(view.getId()) {
case R.id.radioButton01:
if (checked)
// 0 or 1 code
random = getRandomNumber(0,1);
MytextView.setText(random.toString());
break;
case R.id.radioButton1to6:
if (checked)
// 1 to 6 code
random2 = getRandomNumber(1,6);
MytextView.setText(random2.toString());
break;
}
}
private int getRandomNumber(int min,int max) {
return (new Random()).nextInt((max - min) + 1) + min;
}
}
我假设 2 行 'Int random;'是错误的,但编译器似乎想把它们放在这里。 我会明白'random = getRandomNumber(0,1);'这一行在代码的 case 部分就足够了,但是编译器将“随机”标记为红色。
到目前为止,编译器说:'错误:不能在 MytextView.setText(random.toString()) 中取消引用 int;' //0 或 1 代码部分。
我想了解我在这里缺少什么。提前致谢。
(或者更简单地问:如何在 switch/case 中编写随机函数?)
【问题讨论】: