Android随机数和edittext

时间:2012-08-22 22:21:51

标签: android

这里有什么问题?

随机数运作良好。

检查部件号也很有效。

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

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

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

2 个答案:

答案 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();
            }

        }

}