我想在第一次活动中输入自己的分数,并且正在使用复选框方法。通过选择该复选框,他们将获得自己的分数(即1)。选中该复选框并单击下一步之后,它将转到包含该分数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;
}
}
答案 0 :(得分:1)
如果我的理解正确,您想将通过复选框修改的当前分数从AfterNoYesQ1Activity传递给DetectionQues2Activity?
在这种情况下,不要在checkone中使用getIntent()。putExtra,而是将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只是获取并修改当前活动的Intent(AfterNoYesQ1Activity),而不会传递给下一个活动。
如果我错过了要点,请重新解释您的问题,因为这很难解释。
答案 1 :(得分:0)
getIntent()
返回启动此活动的意图。
然后我认为您必须拥有一个score实例作为您活动的属性。您的方法checkone()
可以增加您的分数,当您单击下一个按钮时,您必须通过分数作为额外的意图。如@wabbawabbe所示