如何从不同的活动中获得RadioGroup的价值

时间:2019-03-27 22:30:57

标签: java radio-group

我在Android Studio中制作了一个健身应用程序,并且我的项目有多项活动(6)。我正在尝试从SixthActivity中的ThirdActivity获取无线电组的值。但是,当我尝试执行此操作时,出现错误:

Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'int android.widget.RadioGroup.getCheckedRadioButtonId()' on a null object reference

我已确保xml代码中变量的所有名称正确,并且仍然遇到相同的问题。

  

SixthActivity.java

  Intent intent=getIntent();
  String experience =intent.getStringExtra("Experience");

我希望能够在SixthActivity中从ThirdRadioGroup RadioGroup中获取值。

新代码:

//ThirdActivity.class

 thirdRadioGroup = findViewById(R.id.thirdRadioGroup);
 int radioIdExperience = thirdRadioGroup.getCheckedRadioButtonId();
 experience = (RadioButton) findViewById(radioIdExperience);
 Intent intent = new Intent(this, SixthActivity.class);
 intent.putExtra("Experience", experience.getText());
 startActivity(intent);

现在,再次抛出NullPointerException ..

error: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.CharSequence android.widget.RadioButton.getText()' on a null object reference

2 个答案:

答案 0 :(得分:1)

由于ThirdActivity已暂停,因此您将获得空指针异常。 ThirdActivity已暂停,因为您正在运行第六项。从ThirdActivity获取数据的一种方法是在它们之间导航时将它们作为额外的意图值传递。 示例Java,您可以在ThirdActivity上完成

Intent intent = new Intent(ThirdActivity .this, SixthActivity.class);
intent.putExtra("Experience",experience.getText());
startActivity(intent);

在第六次活动中,您将收到如下数据:

Intent intent=getIntent();
String experience =intent.getStringExtra("Experience");

答案 1 :(得分:0)

在活动之间传递值的一种方法是在负责新活动的意图上使用putExtra。

intent.putExtra("NAME", value)

然后您可以通过在新活动上调用getExtra来访问值。

getIntent().getIntExtra("NAME")
getIntent().getStringExtra("NAME")

https://developer.android.com/reference/android/content/Intent