我添加了这个Radio Group,带有radioButtons,尽管现在我发现我的整个Radio Group为空?一个非常有趣的事情是,当我在API为22的设备上运行它时,我的应用程序未检测到此错误,但是当我在28API仿真器上重新运行它时,此错误确实出现了。
这是代码:
radioGroup = findViewById(R.id.radioGroup2);
Rd1= findViewById(R.id.radioButton5);
Rd2= findViewById(R.id.radioButton6);
radioGroup.setOnCheckedChangeListener( new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
if (Rd1.isChecked()) {
attemptLogin();
Intent intent = new Intent(LoginActivity.this, BottomActivity.class);
startActivity(intent);
}else {
if(Rd2.isChecked()) {
attemptLogin();
Intent intent = new Intent(LoginActivity.this, LoginActivity2.class);
startActivity(intent);
}
}
}
} );
这是XML代码,我尝试将RadioGroup视图添加到我的Login Activity中,以将两个按钮都放置在彼此上方,尽管一旦执行此操作,我便立即收到此错误。
<RadioGroup
android:id="@+id/radioGroup2"
android:layout_width="361dp"
android:layout_height="125dp"
android:layout_gravity="bottom"
android:background="@color/licolor"
android:gravity="center"
android:layout_marginTop="20dp"
android:orientation="vertical"
tools:ignore="UselessParent">
<RadioButton
android:id="@+id/radioButton5"
android:layout_width="match_parent"
android:layout_height="45dp"
android:layout_marginTop="16dp"
android:background="@drawable/mybutton"
android:gravity="center"
android:text="@string/register"
android:textColor="#fafafa"
android:textStyle="bold"
android:textSize="19sp"
android:button="@null"/>
<RadioButton
android:id="@+id/radioButton6"
android:layout_width="match_parent"
android:layout_height="45dp"
android:layout_marginTop="16dp"
android:background="@drawable/mybutton"
android:gravity="center"
android:text="@string/login"
android:textColor="#fafafa"
android:textStyle="bold"
android:textSize="19sp"
android:button="@null"/>
</RadioGroup>
并出现以下错误:
Attempt to invoke virtual method 'void android.widget.RadioGroup.setOnCheckedChangeListener(android.widget.RadioGroup$OnCheckedChangeListener)' on a null object reference
最佳答案
您的RadioGroup的ID =“ radioGroup2”
android:id="@+id/radioGroup2"
在代码中,您正在尝试找到“ radioGroup”
radioGroup = findViewById( R.id.radioGroup );
只需将其更改为:
radioGroup = findViewById( R.id.radioGroup2 );
关于java - 尝试在空对象引用Radio组上调用虚拟方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55032364/