1

这里有什么问题?

随机数效果很好。

检查零件编号也很有效。

但是当我输入一个随机选择的相同数字时,总是“Toast Bad”。

代码: http: //pastebin.com/0pdySnW9

抱歉,我无法在此处粘贴代码。

4

2 回答 2

1

在您的onClick方法中,您实际上是在生成另一个随机数。

因此,您输入的数字不会等于随机数,因为它不是屏幕上显示的数字。

根据您要实现的目标..删除第 32 行,并创建random一个全局变量。

于 2012-08-22T22:26:43.083 回答
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();
            }

        }

}
于 2012-08-22T22:26:54.640 回答