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 に答える