私は多肢選択問題を作成しようとしています。私は4つのランダムな回答を作成することができましたが、正しい答えをどのように入れるかはわかりません。それはオプション1,2,3、または4のいずれかでなければならず、ランダムでなければなりません。複数選択肢の回答の1つがアンドロイドで正しいことを保証するにはどうすればよいですか?
私のJavaコード:不要なメソッドの一部を切り出している
public class MainActivity extends AppCompatActivity{
private boolean correct;
private String questionTxt, option1String, option2String, option3String, option4String;
private int answer;
TextView option1Text, option2Text, option3Text, option4Text;
int r = (int) (Math.random() * (4 - 1)) + 1;
public void correctAnswer()
{
int first = (int)(Math.random() * 10);
int second = (int)(Math.random() * 10);
answer = first + second;
questionTxt = first + " + " + second + " = ?";
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_NOSENSOR);
/*ImageView rocketImage = (ImageView) findViewById(R.id.img_animation);
rocketImage.setBackgroundResource(R.drawable.greencartooncar);
rocketAnimation = (AnimationDrawable) rocketImage.getBackground();*/
TextView questionText = (TextView)findViewById(R.id.question);
correctAnswer();
questionText.setText(questionTxt + "");
option1Text = (TextView)findViewById(R.id.option1);
option1Text.setText(wrongAnswer() + "");
option2Text = (TextView)findViewById(R.id.option2);
option2Text.setText(wrongAnswer() + "");
option3Text = (TextView)findViewById(R.id.option3);
option3Text.setText(wrongAnswer() + "");
option4Text = (TextView)findViewById(R.id.option4);
option4Text.setText(wrongAnswer() + "");
setString();
if (option1String.equals(option2String)||option1String.equals(option3String)||option1String.equals(option4String)
||option2String.equals(option3String)||option2String.equals(option4String)||option3String.equals(option4String))
{
noSameAnswer();
}
}
public int wrongAnswer()
{
return (int)(Math.random() * 10 + Math.random() * 10);
}
public void onClick3(View v) {
if (option3String.equals(Integer.toString(answer))) {
TextView questionText = (TextView) findViewById(R.id.question);
correctAnswer();
questionText.setText(questionTxt + "");
option1Text = (TextView)findViewById(R.id.option1);
option1Text.setText(wrongAnswer() + "");
option2Text = (TextView)findViewById(R.id.option2);
option2Text.setText(wrongAnswer() + "");
option3Text = (TextView)findViewById(R.id.option3);
option3Text.setText(wrongAnswer() + "");
option4Text = (TextView)findViewById(R.id.option4);
option4Text.setText(wrongAnswer() + "");
setString();
noSameAnswer();
}
}
public void onClick1(View v) {
if (option1String.equals(Integer.toString(answer))) {
TextView questionText = (TextView) findViewById(R.id.question);
correctAnswer();
questionText.setText(questionTxt + "");
option1Text = (TextView)findViewById(R.id.option1);
option1Text.setText(wrongAnswer() + "");
option2Text = (TextView)findViewById(R.id.option2);
option2Text.setText(wrongAnswer() + "");
option3Text = (TextView)findViewById(R.id.option3);
option3Text.setText(wrongAnswer() + "");
option4Text = (TextView)findViewById(R.id.option4);
option4Text.setText(wrongAnswer() + "");
setString();
noSameAnswer();
}
}
public void onClick2(View v) {
if (option2String.equals(Integer.toString(answer))) {
TextView questionText = (TextView) findViewById(R.id.question);
correctAnswer();
questionText.setText(questionTxt + "");
option1Text = (TextView)findViewById(R.id.option1);
option1Text.setText(wrongAnswer() + "");
option2Text = (TextView)findViewById(R.id.option2);
option2Text.setText(wrongAnswer() + "");
option3Text = (TextView)findViewById(R.id.option3);
option3Text.setText(wrongAnswer() + "");
option4Text = (TextView)findViewById(R.id.option4);
option4Text.setText(wrongAnswer() + "");
setString();
noSameAnswer();
}
}
public void onClick4(View v) {
if (option4String.equals(Integer.toString(answer))) {
TextView questionText = (TextView) findViewById(R.id.question);
correctAnswer();
questionText.setText(questionTxt + "");
option1Text = (TextView)findViewById(R.id.option1);
option1Text.setText(wrongAnswer() + "");
option2Text = (TextView)findViewById(R.id.option2);
option2Text.setText(wrongAnswer() + "");
option3Text = (TextView)findViewById(R.id.option3);
option3Text.setText(wrongAnswer() + "");
option4Text = (TextView)findViewById(R.id.option4);
option4Text.setText(wrongAnswer() + "");
setString();
noSameAnswer();
}
}
}
。 int rフィールドは1から4までの乱数ですが、それを使って正しい答えをオプション1,2,3、または4にする方法はわかりません。 オプションとして正しい回答を設定したい(乱数)テキスト。
正解の位置を取得する必要がありますか?なぜ、1-4の間の乱数を返さず、正解の位置としてその数字を使うのはなぜですか? –