我有一个简单的代码实现了RadioGroupButton和CheckBox。Android NullPointerException:空对象上的java.lang.widget.RadioButton.getId()引用
当模拟器上启动应用程序时,没有例外,但是当我单击单选按钮时,它抛出异常,我注意到从LogCat中,有一个空对象引用调用getId()导致的此NullPointerException。
我已经检查过我的代码,我失去了为什么会发生异常。 这是我的代码,请给予帮助,非常感谢!
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.widget.RadioGroup;
import android.widget.RadioButton;
import android.widget.RadioGroup.OnCheckedChangeListener;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.Toast;
public class MainActivity extends ActionBarActivity {
private RadioGroup GenderGroup;
private RadioButton rbMale;
private RadioButton rbFemale;
private CheckBox cbFootball;
private CheckBox cbBasketball;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
GenderGroup = (RadioGroup)super.findViewById(R.id.gender);
rbMale = (RadioButton)super.findViewById(R.id.male);
rbMale = (RadioButton)super.findViewById(R.id.female);
//System.out.printf("rbMale = %@", rbMale);
//System.out.printf("rbFemale = %@", rbFemale);
cbFootball = (CheckBox)super.findViewById(R.id.football);
cbBasketball = (CheckBox)super.findViewById(R.id.basketball);
// register OnCheckedChangeListener event:
GenderGroup.setOnCheckedChangeListener(new GenderOnCheckedChangeListener());
cbFootball.setOnCheckedChangeListener(new FootballOnCheckedChangeListener());
cbBasketball.setOnCheckedChangeListener(new BasketballOnCheckedChangeListener());
}
private class GenderOnCheckedChangeListener implements OnCheckedChangeListener {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
String sGender = "";
if (checkedId == rbFemale.getId()) {
sGender = rbFemale.getText().toString();
}
if (checkedId == rbMale.getId()) {
sGender = rbMale.getText().toString();
}
Toast.makeText(getApplicationContext(), "Your gender is :" + sGender, Toast.LENGTH_SHORT).show();
}
}
private class FootballOnCheckedChangeListener implements CompoundButton.OnCheckedChangeListener {
@Override
public void onCheckedChanged(CompoundButton button, boolean isChecked) {
String sFav = "";
if (cbFootball.isChecked()) {
sFav = cbFootball.getText().toString();
sFav = sFav + "selected!";
}
else {
sFav = sFav + "not selected!";
}
Toast.makeText(getApplicationContext(), "Your favourite is: " + sFav, Toast.LENGTH_SHORT).show();
}
}
private class BasketballOnCheckedChangeListener implements CompoundButton.OnCheckedChangeListener {
@Override
public void onCheckedChanged(CompoundButton buttonView,
boolean isChecked) {
String sFav = "";
if (cbBasketball.isChecked()) {
sFav = cbBasketball.getText().toString();
sFav = sFav + "selected!";
}
else {
sFav = sFav + "not selected!";
}
Toast.makeText(getApplicationContext(), "Your favourite is: " + sFav, Toast.LENGTH_SHORT).show();
}
}
}
对不起,我还是新鲜的男人在这里,不能粘贴图片。
谢谢,我很愚蠢,我的手指没有按照我的想法。 –