Как я могу перенести мой счет из одного занятия в другое на Android? - PullRequest
1 голос
/ 05 августа 2011

Вот как я использовал свое целое число в одном упражнении.Это вопрос соответствующего типа, и соответствующий переключатель является одним из ответов.Правильная радиопереключатель даст оценку 1.

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;  
}

На экране результатов я буду использовать целое число следующим образом:

totalscore = score1 +score2 .....

Как мне перевести score1 сактивность с помощью переключателей для активности на экране результатов?

Ответы [ 2 ]

1 голос
/ 05 августа 2011

Попробуйте

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 голосов
/ 05 августа 2011

Во-первых, вы можете значительно упростить свою логику 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();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...