Использование putExtra для флажка, но не может перейти к следующему действию

Я хочу поставить свой собственный счет за первое действие, и я использую метод флажка. Установив этот флажок, они получат свой собственный счет, равный единице. После выбора этого флажка и нажатия кнопки «Далее» выполняется переход к следующему действию, содержащему этот балл 1. Затем процесс в этом втором действии выполняется так же, как и в первом упражнении, но с той лишь разницей, что балл должен увеличиться на 1. Я покажу свою работу над первым делом ниже:

public class AfterNoYesQ1Activity extends AppCompatActivity {

Button buttonNext;

TextView textViewClickHere;




int score = 1;


CheckBox check1,check2,check3,check4,check5,check6,check7;

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

    check1 = (CheckBox)findViewById(R.id.checkBox1);
    check2 = (CheckBox)findViewById(R.id.checkBox2);
    check3 = (CheckBox)findViewById(R.id.checkBox3);
    check4 = (CheckBox)findViewById(R.id.checkBox4);
    check5 = (CheckBox)findViewById(R.id.checkBox5);
    check6 = (CheckBox)findViewById(R.id.checkBox6);
    check7 = (CheckBox)findViewById(R.id.checkBox7);


    buttonNext = (Button)findViewById(R.id.buttonNext);

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



            Intent intent = new Intent(AfterNoYesQ1Activity.this, DetectionQues2Activity.class);
            startActivity(intent);



        }
    });


    textViewClickHere = (TextView) findViewById(R.id.textViewClickHere);

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

            Intent intent = new Intent(AfterNoYesQ1Activity.this, DetectionQues2Activity.class);
            startActivity(intent);




        }
    });


}

public void checkone (View view)

{

    if (check1.isChecked() && check5.isChecked() && check6.isChecked())
    {


        getIntent().putExtra("score",score);


    }
    else if (check1.isChecked() && check5.isChecked() && check7.isChecked())
    {
        //fail
        getIntent().putExtra("score",score);

    }
    else if (check1.isChecked() && check6.isChecked() && check7.isChecked())
    {
        //fail
        getIntent().putExtra("score",score);

    }
    else if (check2.isChecked() && check5.isChecked() && check6.isChecked())
    {
        //fail
        getIntent().putExtra("score",score);

    }
    else if (check2.isChecked() && check5.isChecked() && check7.isChecked())
    {
        //fail
        getIntent().putExtra("score",score);

    }
    else if (check2.isChecked() && check6.isChecked() && check7.isChecked())
    {
        //fail
        getIntent().putExtra("score",score);

    }
    else if (check3.isChecked() && check5.isChecked() && check6.isChecked())
    {
        //fail
        getIntent().putExtra("score",score);

    }
    else if (check3.isChecked() && check5.isChecked() && check7.isChecked())
    {
        //fail
        getIntent().putExtra("score",score);

    }
    else if (check3.isChecked() && check6.isChecked() && check7.isChecked())
    {
        //fail
        getIntent().putExtra("score",score);

    }
    else if (check3.isChecked() && check5.isChecked() && check6.isChecked())
    {
        //fail
        getIntent().putExtra("score",score);

    }
    else if (check3.isChecked() && check5.isChecked() && check7.isChecked())
    {
        //fail
        getIntent().putExtra("score",score);

    }
    else if (check1.isChecked() && check5.isChecked() && check6.isChecked())
    {

    }
    else if (check3.isChecked() && check6.isChecked() && check7.isChecked())
    {
        //fail

    }
    else if (check1.isChecked() && check2.isChecked() && check5.isChecked())
    {
        //pass

    }
    else if (check1.isChecked() && check2.isChecked() && check6.isChecked())
    {
        //pass

    }
    else if (check1.isChecked() && check2.isChecked() && check7.isChecked())
    {
        //pass

    }
    else if (check1.isChecked() && check2.isChecked() && check3.isChecked() && check5.isChecked())
    {
        //pass

    }
    else if (check1.isChecked() && check2.isChecked() && check3.isChecked() && check6.isChecked())
    {
        //pass

    }
    else if (check1.isChecked() && check2.isChecked() && check3.isChecked() && check7.isChecked())
    {
        //pass

    }
    else if (check1.isChecked() && check2.isChecked() && check3.isChecked()
            && check4.isChecked() && check5.isChecked())
    {
        //pass

    }
    else if (check1.isChecked() && check2.isChecked() && check3.isChecked()
            && check4.isChecked() && check6.isChecked())
    {
        //pass

    }
    else if (check1.isChecked() && check2.isChecked() && check3.isChecked()
            && check4.isChecked() && check7.isChecked())
    {
        //pass

    }



    score = score + 1;

}

}

Где вы вызываете метод checkone ()?

ILLIA DEREVIANKO 02.11.2018 12:50

Это вы знаете, что вы можете putExtra информацию о намерениях и getExtra из входящих намерений?

kelalaka 02.11.2018 12:50

я буквально знаю о putExtra информации и переходите к следующему действию, используя кнопку. но я не могу понять, как поставить Extra для флажка, иначе я не могу использовать метод checkone?

jatt 02.11.2018 12:56

Попытайтесь сделать так, чтобы ваш метод chackone() возвращал значение Логический, где вы решаете пройти и не пройти, и на основе значения из метода checkone() выполните putExtra(), где вы передаете свое намерение следующему действию.

Danger 02.11.2018 13:35
1
4
128
2

Ответы 2

Если я правильно понимаю, вы хотите передать текущий счет, измененный флажками, с AfterNoYesQ1Activity на DetectionQues2Activity?

В этом случае вместо использования getIntent (). PutExtra в checkone измените свой textViewClickHere.onClickListener на:

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

        Intent intent = new Intent(AfterNoYesQ1Activity.this, DetectionQues2Activity.class);
        intent.putExtra("score", score);
        startActivity(intent);
    }
});

getIntent (). putExtra просто получает и изменяет намерение текущего действия (AfterNoYesQ1Activity) и не передается следующему действию.

Если я упустил суть, перефразируйте свой вопрос, так как его невероятно сложно расшифровать.

да, правильно .. но если я поставлю intent.putExtra ("score", score) в свой textViewClickHere.onClickListener, он также передаст этот счет на флажке? Потому что я не понимаю, как правильно передавать данные (оценку), потому что, если выбран флажок 1,2,3, они получат оценку 1, и эту оценку 1 я хочу перейти к следующему действию.

jatt 02.11.2018 15:07

Согласно документация,

getIntent() Return the intent that started this activity.

Тогда я думаю, что у вас должен быть экземпляр оценки как атрибут вашей деятельности. Ваш метод checkone() может увеличить ваш счет, и когда вы нажмете на следующую кнопку, вы должны передать счет как дополнительный к намерению. Как показал @wabbawabbe

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