Как рассчитать счет с помощью переключателей в Android? - PullRequest
0 голосов
/ 06 апреля 2020

Я занимаюсь разработкой формы, в которой используются переключатели и список вопросов.

Когда пользователь нажимает переключатель «Да» для каждого вопроса, я хочу увеличить оценку на 20. Если пользователь нажимает переключатель Нет, оценка должна быть 0.

Взгляните на код.

Это класс активности

CoughTest. java

  public class CoughTest extends AppCompatActivity {

    int score= 0;
    RadioGroup rg1,rg2,rg3,rg4,rg5;
    RadioButton rb;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_cough_test);

        rg1 = (RadioGroup) findViewById(R.id.rgroup1);
        rg2 = (RadioGroup) findViewById(R.id.rgroup2);
        rg3 = (RadioGroup) findViewById(R.id.rgroup3);
        rg4 = (RadioGroup) findViewById(R.id.rgroup4);
        rg5 = (RadioGroup) findViewById(R.id.rgroup5);
    }


    public void rbClicked(View view) {
        int radioButtonId = rg1.getCheckedRadioButtonId();
        rb =(RadioButton) findViewById(radioButtonId);

        boolean checked = ((RadioButton) view).isChecked();

        switch (view.getId()){
            case R.id.yes1:
                score = score + 20;
                break;
            case R.id.no1:
                score = 0;
                break;
            case R.id.yes2:
                score = score + 20;
                break;
            case R.id.no2:
                score = 0;
                break;
            case R.id.yes3:
                score = score + 20;
                break;
            case R.id.no3:
                score = 0;
                break;
            case R.id.yes4:
                score = score + 20;
                break;
            case R.id.no4:
                score = 0;
                break;
            case R.id.yes5:
                score = score + 20;
                break;
            case R.id.no5:
                score = 0;
                break;
        }
    }
}

Это XML файл

activity_cough_test. xml

    <?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".CoughTest">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical">
        <TextView
            android:id="@+id/textView11"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="16dp"
            android:layout_marginLeft="10dp"
            android:fontFamily="@font/roboto_bold"
            android:text="Do you have a cough?"
            android:textColor="#100D40"
            android:textSize="20sp" />

        <RadioGroup
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/rgroup1">
            <RadioButton
                android:id="@+id/yes1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginTop="12dp"
                android:layout_marginLeft="10dp"
                android:fontFamily="@font/roboto_bold"
                android:onClick="rbClicked"
                android:text="Yes"
                android:textColor="#100D40" />
            <RadioButton
                android:id="@+id/no1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:fontFamily="@font/roboto_bold"
                android:layout_marginLeft="10dp"
                android:onClick="rbClicked"
                android:text="No"
                android:textColor="#100D40" />
        </RadioGroup>

        <TextView
            android:id="@+id/soar_throat"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="20dp"
            android:layout_marginLeft="10dp"
            android:fontFamily="@font/roboto_bold"
            android:text="Do you have a soar throat?"
            android:textColor="#100D40"
            android:textSize="20sp" />

        <RadioGroup
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/rgroup2">
            <RadioButton
                android:id="@+id/yes2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginTop="12dp"
                android:layout_marginLeft="10dp"
                android:fontFamily="@font/roboto_bold"
                android:onClick="rbClicked"
                android:text="Yes"
                android:textColor="#100D40" />
            <RadioButton
                android:id="@+id/no2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:fontFamily="@font/roboto_bold"
                android:layout_marginLeft="10dp"
                android:onClick="rbClicked"
                android:text="No"
                android:textColor="#100D40" />
        </RadioGroup>

        <TextView
            android:id="@+id/fever"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="24dp"
            android:layout_marginLeft="10dp"
            android:fontFamily="@font/roboto_bold"
            android:text="Do you have fever?"
            android:textColor="#100D40"
            android:textSize="20sp" />

        <RadioGroup
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/rgroup3">
            <RadioButton
                android:id="@+id/yes3"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginTop="12dp"
                android:layout_marginLeft="10dp"
                android:fontFamily="@font/roboto_bold"
                android:onClick="rbClicked"
                android:text="Yes"
                android:textColor="#100D40" />
            <RadioButton
                android:id="@+id/no3"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:fontFamily="@font/roboto_bold"
                android:layout_marginLeft="10dp"
                android:onClick="rbClicked"
                android:text="No"
                android:textColor="#100D40" />
        </RadioGroup>

        <TextView
            android:id="@+id/tiredness"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="24dp"
            android:layout_marginLeft="10dp"
            android:fontFamily="@font/roboto_bold"
            android:text="Do you have tiredness?"
            android:textColor="#100D40"
            android:textSize="20sp" />

        <RadioGroup
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/rgroup4">
            <RadioButton
                android:id="@+id/yes4"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginTop="12dp"
                android:layout_marginLeft="10dp"
                android:fontFamily="@font/roboto_bold"
                android:onClick="rbClicked"
                android:text="Yes"
                android:textColor="#100D40" />
            <RadioButton
                android:id="@+id/no4"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:fontFamily="@font/roboto_bold"
                android:layout_marginLeft="10dp"
                android:onClick="rbClicked"
                android:text="No"
                android:textColor="#100D40" />
        </RadioGroup>

        <TextView
            android:id="@+id/breathing"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="20dp"
            android:layout_marginLeft="10dp"
            android:fontFamily="@font/roboto_bold"
            android:text="Do you have difficulty in breathing?"
            android:textColor="#100D40"
            android:textSize="20sp" />

        <RadioGroup
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/rgroup5">
            <RadioButton
                android:id="@+id/yes5"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginTop="12dp"
                android:layout_marginLeft="10dp"
                android:fontFamily="@font/roboto_bold"
                android:onClick="rbClicked"
                android:text="Yes"
                android:textColor="#100D40" />
            <RadioButton
                android:id="@+id/no5"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:fontFamily="@font/roboto_bold"
                android:layout_marginLeft="10dp"
                android:onClick="rbClicked"
                android:text="No"
                android:textColor="#100D40" />
        </RadioGroup>
    </LinearLayout>
</ScrollView>

Ответы [ 2 ]

0 голосов
/ 06 апреля 2020

просто установите счет в вашем textView после регистра переключателя:

yourTextView = String.ValueOf(score); 
0 голосов
/ 06 апреля 2020

Я предложу этот метод:

CoughTest. java:

public class CoughTest extends AppCompatActivity {

private Button btnSubmit, btnReset;
private TextView finalScore;
private RadioButton cough, sourThroat, fever, tiredness, breathing;

private  int score = 0;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_cough_test);

    btnSubmit = (Button) findViewById(R.id.btnSubmit);
    btnReset = (Button) findViewById(R.id.btnReset);
    finalScore = (TextView) findViewById(R.id.textFinalScore);

    cough = (RadioButton) findViewById(R.id.cough);
    sourThroat = (RadioButton) findViewById(R.id.sour_throat);
    fever = (RadioButton) findViewById(R.id.fever);
    tiredness = (RadioButton) findViewById(R.id.tiredness);
    breathing = (RadioButton) findViewById(R.id.breathingDifficulty);

    btnSubmit.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if (cough.isChecked()) {
                score = score + 20;
            } else {
                score = score + 0;
            }

            if (sourThroat.isChecked()) {
                score = score + 20;
            } else {
                score = score + 0;
            }

            if (fever.isChecked()) {
                score = score + 20;
            } else {
                score = score + 0;
            }

            if (tiredness.isChecked()) {
                score = score + 20;
            } else {
                score = score + 0;
            }

            if (breathing.isChecked()) {
                score = score + 20;
            } else {
                score = score + 0;
            }

            //Finally show your score.
            Toast.makeText(getApplicationContext(), "Score is: " + score, Toast.LENGTH_SHORT).show();

        }
    });
            //Resetting everything
    btnReset.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            score = 0;
            cough.setChecked(false);
            fever.setChecked(false);
            breathing.setChecked(false);
            tiredness.setChecked(false);
            sourThroat.setChecked(false);
        }
    });
}

}

Возвращаясь к вашему XML Я изменил его.

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".CoughTest">

    <ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context=".CoughTest">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical">


            <TextView
                android:id="@+id/textView12"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginTop="16dp"
                android:layout_marginLeft="10dp"
                android:fontFamily="@font/roboto_bold"
                android:text="Please check (✓) if you show the symptom."
                android:textColor="#100D40"
                android:textSize="16sp" />

            <RadioButton
                android:id="@+id/cough"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginTop="12dp"
                android:layout_marginLeft="10dp"
                android:fontFamily="@font/roboto_bold"
                android:text="cough"
                android:textColor="#100D40" />


            <RadioButton
                android:id="@+id/sour_throat"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginTop="12dp"
                android:layout_marginLeft="10dp"
                android:fontFamily="@font/roboto_bold"
                android:text="Sour Throat"
                android:textColor="#100D40" />


            <RadioButton
                android:id="@+id/fever"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginTop="12dp"
                android:layout_marginLeft="10dp"
                android:fontFamily="@font/roboto_bold"
                android:text="Fever"
                android:textColor="#100D40" />


            <RadioButton
                android:id="@+id/tiredness"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginTop="12dp"
                android:layout_marginLeft="10dp"
                android:fontFamily="@font/roboto_bold"
                android:text="tiredness"
                android:textColor="#100D40" />


            <RadioButton
                android:id="@+id/breathingDifficulty"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginTop="12dp"
                android:layout_marginLeft="10dp"
                android:fontFamily="@font/roboto_bold"
                android:text="Breathing Difficulty"
                android:textColor="#100D40" />

            <Button
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="submit"
                android:id="@+id/btnSubmit"
                android:layout_marginStart="50sp"/>
            <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Reset"
            android:layout_marginTop="5sp"
            android:id="@+id/btnReset"
            android:layout_marginStart="50sp"/>

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginTop="20sp"
                android:layout_marginStart="20sp"
                android:hint="Your Score Here"
                android:textColor="#000000"
                android:id="@+id/textFinalScore"/>

        </LinearLayout>
    </ScrollView>

</RelativeLayout>

Я удалил группы радиосвязи. Просто предложите вашему пользователю нажать на него, когда они согласятся. Значит, если их ответ ДА, тогда, пожалуйста, проверьте переключатель, иначе оставьте его не отмеченным. Надеюсь, это поможет.

Кстати, как это работает: enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...