Использование putExtra на флажок, но не может перейти к следующему действию - PullRequest
0 голосов
/ 02 ноября 2018

Я хочу поставить свой собственный счет от первого действия, и я использую метод флажок. Выбрав этот флажок, они имеют свой собственный счет, который равен единице. После выбора этого флажка и нажатия кнопки «Далее» он перейдет к следующему действию, которое содержит этот счет 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;

}

}

Ответы [ 2 ]

0 голосов
/ 02 ноября 2018

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

getIntent() Вернуть намерение, с которого началась эта деятельность.

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

0 голосов
/ 02 ноября 2018

Если я правильно понимаю, вы хотите передать текущий счет, измененный флажками, из 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) и не будет передано следующему действию.

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

...