我正在尝试解决Android Quiz应用中的问题。当我没有在我的RadioGroup中选择一个选项时,我的应用程序崩溃了: java.lang.CharSequence对空对象引用的android.widget.RadioButton.getText()'
This is a part of my Java code:
select.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if ((capital.getCheckedRadioButtonId() == -1))
{
Toast.makeText(getApplicationContext(), "Select an Answer Please", Toast.LENGTH_LONG).show();
}
int selectid1 = capital.getCheckedRadioButtonId();
items = (RadioButton) findViewById(selectid1);
String s1 = items.getText().toString();
userAnswer1 = (RadioButton) findViewById(R.id.bucharest);
String theAnswer1 = userAnswer1.getText().toString();
if (s1.equals(theAnswer1)) {
score = score + 1;
}
Toast.makeText(MainActivity.this, "Your score is: " + score + " out of 6!", Toast.LENGTH_SHORT).show();
score = 0;
}
});
}
}
I also tried:
RadioButton bucharest;
RadioButton budapest;
RadioButton paris;
bucharest = (RadioButton) findViewById(R.id.bucharest);
budapest = (RadioButton) findViewById(R.id.budapest);
paris = (RadioButton) findViewById(R.id.paris);
if (bucharest.isChecked() || budapest.isChecked() || paris.isChecked()) {
Toast.makeText(MainActivity.this, "chosen", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(getApplicationContext(), "Please select option", Toast.LENGTH_SHORT).show();
}
答案 0 :(得分:0)
你得到一个NullPointerException,可能在线
String s1 = items.getText().toString();
发生的事情是,如果没有选中单选按钮,则显示toast,然后在if块执行后再执行语句,当你选中了单选按钮时,它会给出null,你最后调用getText()给出NullPointerException。所以把所有内容放在if else else之后。