ここで何が問題なのですか?
乱数はうまく機能します。
品番の確認もバッチリです。
しかし、ランダムに選択された同じ番号を入力すると、常に「Toast Bad」となります。
コード: http://pastebin.com/0pdySnW9
申し訳ありませんが、ここにコードを貼り付けることはできません。
ここで何が問題なのですか?
乱数はうまく機能します。
品番の確認もバッチリです。
しかし、ランダムに選択された同じ番号を入力すると、常に「Toast Bad」となります。
コード: http://pastebin.com/0pdySnW9
申し訳ありませんが、ここにコードを貼り付けることはできません。
あなたのonClick
方法では、実際には別の乱数を生成しています。
したがって、入力している数値は、画面に表示される数値ではないため、乱数と等しくなりません。
達成しようとしていることに応じて.. 32行目を削除しrandom
、グローバル変数を作成します。
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();
}
}
}