2017-05-09 668 views
0

由于getBooleanExtra方法有两个值 - truefalse,如何使用getBooleanExtra编写代码以显示两个不同的字符串值?从getBooleanExtra显示多个字符串

例如,按RadioButton1应显示来自getBooleanExtra 1的字符串,并且按RadioButton2应显示字符串2

我写了类似的东西,但它没有完成这项工作。

textViewDisplayResult.setText(getIntent().getBooleanExtra("KEY_ANSWER", false)?getString(R.string.1):getString(R.2)); 

POST UPDATE

所以在以下情况下,使用Bundle如何将值传递给其他activity

final Intent intent = new Intent(MainActivity.this, AnswerActivity.class); 

    buttonCheckAnswer.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      if (!allAnswersChecked()) 
       intent.putExtra("KEY_ALL_CHECKED", R.string.text_not_checked); 

      else if (checkAnswers()) 
       intent.putExtra("KEY_ANSWER", R.string.Good_answer); 

      else 
       intent.putExtra("KEY_ANSWER", R.string.Wrong_answer); 

      startActivity(intent); 

     } 
    }); 
+1

您尝试编译它还是编译了它?它甚至不编译'getString(R.2)'。它没有两个参数true和false ..它有2个参数'name'和默认布尔值,它是true/false。使您的“KEY_ANSWER”值为变量布尔值,然后在if子句中设置适当的值。 – miljon

+0

嗨,我没有补足。我无法让它工作。你能给我举一个你建议我做什么的例子吗? – Ramona

+0

我纠正了我的帖子。谢谢miljon。 – Ramona

回答

1

“既然getBooleanExtra方法有两个参数 - truefalse” ......这是错误getBooleanExtra()有两个参数:一个是您传递布尔值的键,另一个是default值。所以你不能使用单个putBooleanExtra()来传递两个值。

您可以使用Bundle来传递多个值。请参阅this for mor info.

+0

我已更正我的信息。谢谢Kaushal。因此,如果假设我使用'if-else'声明了'buttonCheckAnswer',那么'Bundle'是在其他'activity'中显示'Keys'的唯一方法? – Ramona

+0

我说你可以使用bundle发送多个值。所以如果你想发送两个布尔变量,然后把它们放在一起并发送它们。 – Kaushal28

+0

谢谢。我还有一个问题给你,考沙尔。请看看我更新的帖子。 – Ramona