Не знаю, где разместить код CheckBox в MainActivity.java

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

По сути, это то, как должно работать приложение: всего 5 вопросов, каждый из которых несет 2 оценки, три MCQ, в которых один является правильным, 4-й вопрос, оба ответа верны, поэтому мы добавляем флажок, каждый флажок несет одну отметку, затем поле editText, чтобы Пользователь может добавлять свои собственные комментарии, после того, как пользователь ответит на все вопросы, тогда и только тогда, после нажатия на кнопку "Отправить", оценка должна быть представлена ​​пользователю!
Спасибо

Каждый вопрос имеет 2 балла, проблема в том, что флажки не работают

Я хочу знать, как просто использовать флажок, чтобы обновить счет

Файл MainActivity.java здесь

package com.example.android.quizatlast;

import android.content.Context;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {
    int Totalscore = 0;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //toasts , onclick , and distroying buttons for next time


        final Button buttononeone = (Button) findViewById(R.id.Button1_1);
        final Button buttononetwo = (Button) findViewById(R.id.Button1_2);

        buttononeone.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                int score = 2;
                Totalscore = Totalscore + score;
                Score(Totalscore);
                buttononeone.setEnabled(false);
                buttononetwo.setEnabled(false);

            }
        });
        buttononetwo.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Context context = getApplicationContext();
                CharSequence text = "Ahh,Wait for the score";
                int duration = Toast.LENGTH_SHORT;

                Toast toast = Toast.makeText(context, text, duration);
                toast.show();

                buttononetwo.setEnabled(false);
                buttononeone.setEnabled(false);
            }
        });

        final Button buttontwoone = (Button) findViewById(R.id.Button2_1);
        final Button buttontwotwo = (Button) findViewById(R.id.Button2_2);

        buttontwoone.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                Context context = getApplicationContext();
                CharSequence text = "Dehli,City you should must visit";
                int duration = Toast.LENGTH_SHORT;

                Toast toast = Toast.makeText(context, text, duration);
                toast.show();
                buttontwoone.setEnabled(false);
                buttontwotwo.setEnabled(false);

            }
        });

        buttontwotwo.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                int score = 2;

                Totalscore = Totalscore + score;
                Score(Totalscore);

                Context context = getApplicationContext();
                CharSequence text = "Ahh,mumbai is  a beautiful place";
                int duration = Toast.LENGTH_SHORT;

                Toast toast = Toast.makeText(context, text, duration);
                toast.show();
                buttontwotwo.setEnabled(false);
                buttontwoone.setEnabled(false);

            }
        });

        final Button buttonthreeone = (Button) findViewById(R.id.Button3_1);
        final Button buttonthreetwo = (Button) findViewById(R.id.Button3_2);
        buttonthreeone.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                int score = 2;

                Totalscore = Totalscore + score;
                Score(Totalscore);
                Context context = getApplicationContext();
                CharSequence text = "Agra , wonders are waiting there for you";
                int duration = Toast.LENGTH_SHORT;

                Toast toast = Toast.makeText(context, text, duration);
                toast.show();
                buttonthreeone.setEnabled(false);
                buttonthreetwo.setEnabled(false);
            }
        });

                //PROBLEM HERE

        CheckBox checkBoxfourone = (CheckBox) findViewById(R.id.Checkbox4_1);
        boolean check4_1 = checkBoxfourone.isChecked();
        CheckBox checkBoxfourtwo = (CheckBox) findViewById(R.id.Checkbox4_2);
        boolean check4_2 = checkBoxfourtwo.isChecked();
        Score(Totalscore);
    }

    private int checkscore(boolean check4_1,boolean check4_2) {
        int score = Totalscore;
        if (check4_1) {
            Totalscore = Totalscore + 1;
        }
        if (check4_2) {
            Totalscore = Totalscore + 1;
        }
        return Totalscore;
    }

                //TILL HERE
    public void Score(int score) {

        TextView scoreView = (TextView) findViewById(R.id.score);
        scoreView.setText(String.valueOf(score));
    }public void reset(View view){
        Score(Totalscore = 0);
    }
}

activity_main.xml

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

<LinearLayout
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_margin="8dp"
    android:orientation="vertical"
    tools:context="com.example.android.justjava.MainActivity">

        <LinearLayout
            android:id="@+id/topping"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="vertical">
            <EditText
                android:id="@+id/Name_view"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:hint="Name"
                android:inputType="textCapCharacters" />
            <EditText
                android:id="@+id/Email_view"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:hint="Email"
                android:inputType="textCapCharacters" />
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginBottom="8dp"
                android:text="Toppings"
                android:textSize="16sp"
                android:textAllCaps="true"/>
            <CheckBox
                android:id="@+id/checkbox"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Whipped Cream"
                android:paddingLeft="24dp"
                android:textSize="16sp"
                android:layout_marginBottom="8dp"/>
            <CheckBox
                android:id="@+id/chocolate_checkbox"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Chocolate"
                android:paddingLeft="24dp"
                android:textSize="16sp"
                android:layout_marginBottom="8dp"/>
        </LinearLayout>
        <TextView
            android:id="@+id/text_view"
            android:layout_below="@id/topping"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginBottom="8dp"
            android:text="quantity!"
            android:textAllCaps="true"
            android:textSize="16sp" />
        <LinearLayout
            android:id="@+id/linear"
            android:layout_below="@id/text_view"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            >   <Button
            android:onClick="decrement"        android:id="@+id/decrement"
            android:layout_below="@id/quantity_text_view"
            android:layout_width="48dp"
            android:layout_height="48dp"
            android:text="-"
            android:layout_marginBottom="8dp"/>


            <TextView
                android:layout_marginLeft="8dp"
                android:id="@+id/quantity_text_view"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginBottom="8dp"
                android:layout_below="@id/increment"
                android:text="0"
                android:textColor="#000"
                android:layout_marginRight="8dp"
                android:textSize="24sp" />
            <Button
                android:onClick="increment"
                android:id="@+id/increment"
                android:layout_below="@id/text_view"
                android:layout_width="48dp"
                android:layout_height="48dp"
                android:text="+"
                android:layout_marginBottom="8dp"/>

        </LinearLayout>

        <TextView
            android:id="@+id/order_summary"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@id/linear"
            android:layout_marginBottom="8dp"
            android:text="order summary"
            android:textAllCaps="true"
            android:textSize="16sp" />

        <TextView
            android:id="@+id/order_summary_text_view"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@id/order_summary"
            android:layout_marginBottom="8dp"
            android:textSize="24sp" />

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@id/order_summary_text_view"
            android:onClick="submitOrder"
            android:text="order" />


    </LinearLayout>
</ScrollView>

3 ответа

Если вы хотите рассчитать балл только после нажатия кнопки "Отправить", просто переместите isChecked() код в ваш submitOrder метод, так что только после того, как пользователь нажмет кнопку отправки, мы проверим, установлены ли флажки или нет.

Если вы хотите обновить счет в режиме реального времени, следуйте ответу Рахула Чаудхари, и как только оба флажка установлены, отключите оба.

Поставить этот кусок кода ниже флажок инициализации

checkBoxfourone.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {

   @Override
   public void onCheckedChanged(CompoundButton buttonView,boolean isChecked) {

   }

});

и то же самое для второго флажка или реализации CompoundButton.OnCheckedChangeListener и ваша MainActivity выглядят так

class MainActivity extends AppCompatActivity implements CompoundButton.OnCheckedChangeListener {


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

// ваш старый код идет сюда

    checkBoxfourtwo.setOnCheckedChangeListener(this);
    checkBoxfourone.setOnCheckedChangeListener(this);
}


@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
    switch (buttonView.getId()) {
        // to do here
    }

}

}

Когда вы нажмете кнопку "Отправить", отметьте галочкой все проверенные значения и используйте проверку

checkValidation(){
    if(checkbox1.equal(correct anwser1) && checkbox2.equal(correct anwser2) 
    ) 
           {
       return true
         }else{
     return false
        }}

и проверить на отправить

   submit.setOnclick(new.....
       onclick(){
       if( checkValidation()){
      Toast(answer is right)
       }else{
    Toast(answer is wrong)
   }
    }

)

Другие вопросы по тегам