10個の質問のあるクイズアプリ、4個のラジオボタン、最後に1個のボタンを使ってスコアを表示しています。問題は、私が5点を与える正解を選んだときですが、別のラジオボタンをチェックすると5点が残り、もう一度押すと5点が加算されます。これをコード化する最良の方法は何ですか?ここでラジオボタン付きAndroidでクイズアプリを作る
はコードです:
package com.example.android.quizproject;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.RadioButton;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
int points = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void firstRadioButtons (View view){
boolean checked = ((RadioButton) view).isChecked();
switch (view.getId()) {
case R.id.questionOneA:
if (checked)
points += 0;
break;
case R.id.questionOneB:
if (checked)
points += 0;
break;
case R.id.questionOneC:
if (checked)
points += 5;
break;
case R.id.questionOneD:
if (checked)
points += 0;
break;
}
}
public void showScore (View view) {
TextView scoreTextView = (TextView) findViewById(R.id.score);
scoreTextView.setText(" " + points);
}
}
質問を表現する方法はちょっと混乱します。あなたが表示するコードは、正しいオプション(C)がクリックされた場合は5ポイントを追加し、別のオプションがクリックされた場合は何もしません。これは意図された動作ではありませんか?または、これを実装する最良の方法を求めているだけですか? – RedBassett
申し訳ありませんが、私の英語は最悪です! 問題は、正しい点を選択すると5点が加算されます。A、BまたはDに切り替えると0が加算されますが、Cを選択した場合は5点が減算されません。合計10ポイント。 –
英語の心配はありません。あなたはこれを遠くにするためにうまくやっている!どのように質問がレイアウトされていますか? 1つのページに10の質問がすべてあるのですか?質問の間に進むための「次の」ボタンがありますか?ボタンがある場合は、そのポイントが選択されるまでポイントを加算/減算しないでください。それらが1ページにある場合、オプションがチェックされているときではなく、最後にスコアボタンが押されたときにすべての質問をチェックします。 – RedBassett