2011-08-05 60 views
1

这是我从一个活动中使用我的整数的方式。这是一个匹配类型的问题,相应的单选按钮就是其中一个答案。正确的单选按钮将给予1如何在Android上将我的分数从一项活动转移到另一项活动?

Integer score1; 
public void onCheckedChanged(RadioGroup group, int rb1) { 
    switch(rb1){ 
    case R.id.radioButton1: 
    score1=0; 
    break; 
    case R.id.radioButton2: 
    score1=0; 
    break; 
    case R.id.radioButton3: 
    score1=0; 
    break; 
    case R.id.radioButton4: 
    score1= 1; 
    break; 
} 

分数在结果屏幕我会USNG这样的整数:

totalscore = score1 +score2 ..... 

如何转移score1从活动与单选按钮结果屏幕的活动?

+0

你到底想要做什么? – skyfoot

回答

1

尝试

Integer score1, totalscore; 

public void onCheckedChange(RadioGroup group, int rb1) { 
    switch (rb1) { 
     case R.id.radioButton1: 
      score1=0; 
      break; 
     case R.id.radioButton2: 
      score1=0; 
      break; 
     case R.id.radioButton3: 
      score1=0; 
      break; 
     case R.id.radioButton4: 
      score1= 1; 
      totalscore += 1; 
      break; 
    } 
} 
+0

谢谢,我可以用这个... – user880355

0

首先,你可以大大简化您的switch逻辑:

Integer score1; 
public void onCheckedChanged(RadioGroup group, int rb1) { 
    score1 = (rb1 == R.id.radioButton4) ? 1 : 0; 
} 

其次,有几种不同的方式从一个活动传递score1到另一个。例如,当您为第二个活动创建Intent时,可以使用putExtra()来存储您的分数值,然后第二个活动可以使用getExtra()在开始时读取该值。

或者你可以使用任何一种快速而可疑的黑客攻击,如做score1一个public static场,或周围通过它通过系统属性,或者写出来给一个一致同意的文件位置,或将其存储到数据库中的商定字段(这些攻击仅适用于每台设备只有单个活动实例,并且根本不推荐)。

真的,虽然你应该坚持与getExtra()putExtra()。沿线:

//in QuestionActivity 
private Integer score1; 

//... 

public void onCheckedChanged(RadioGroup group, int rb1) { 
    score1 = (rb1 == R.id.radioButton4) ? 1 : 0; 
    Intent resultIntent = new Intent(this, ResultActivity.class); 
    resultIntent.putExtra("score1", score1); 
    startActivity(resultIntent); 
} 


//in ResultActivity 
private Integer score1; 

//... 

@Override 
protected void onStart() { 
    score1 = this.getIntent().getExtras().getInt("score1"); 
    super.onStart(); 
} 
+0

谢谢,真的让我的编码简单。现在我该如何使用putextra并使用此score1再次获得额外的奖励,以及如何在第二个屏幕上使用它,当我将其应用为totalscore = score1 + score2 + score3 ....我的第一个活动是question1,我的第二个活动活动是resultscreen。再次感谢。 – user880355

+0

@ user880355 - 我已经用一个基本示例更新了我的答案。 – aroth

+0

谢谢,那太棒了... – user880355

相关问题