这里有什么问题?
随机数运作良好。
检查部件号也很有效。
但是当我输入一个随机选择的相同数字时,总是“Toast Bad”。
代码:http://pastebin.com/0pdySnW9
很抱歉,我无法在此处粘贴代码。
答案 0 :(得分:1)
在您的onClick
方法中,您实际上会生成另一个随机数。
因此,您输入的数字不会等于随机数,因为它不是屏幕上显示的数字。
取决于您要实现的目标..删除第32行,并使random
成为全局变量。
答案 1 :(得分:0)
在你的onClick中,你用这一行生成一个新的随机数
int random = random();
您应该将随机变量设为变量,以便可以在整个活动中访问它而无需更改
离
public class MainActivity extends Activity implements OnClickListener {
private TextView display;
private Button ok;
public EditText et;
private int random; //note this is now a member variable
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
ok = (Button) findViewById(R.id.button1);
ok.setOnClickListener(this);
display = (TextView) findViewById(R.id.textView1);
et = (EditText) findViewById(R.id.etNumbers);
random = random();
display.setText("Random Number:" + random); // Show the random number
}
// ************RANDOM******************************
public static int random() {
Random generator = new Random();
int x = generator.nextInt(100);
return x;
}
// ************************************************
public void onClick(View v) {
// TODO Auto-generated method stub
int numberEntered = -1;
try {
numberEntered = Integer.parseInt(et.getText().toString());
} catch (NumberFormatException nfe) {
Toast.makeText(et.getContext(), "That's not a number!",
Toast.LENGTH_LONG).show();
}
if (random == numberEntered) {
Toast.makeText(et.getContext(), "Great!", Toast.LENGTH_LONG).show();
} else {
Toast.makeText(et.getContext(), "Bad!", Toast.LENGTH_LONG).show();
}
}
}