当我在RadioGroup中没有选择选项时,Android Studio-Quiz App会崩溃

时间:2018-03-26 15:06:31

标签: java android android-studio

我正在尝试解决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();

                }

1 个答案:

答案 0 :(得分:0)

你得到一个NullPointerException,可能在线

String s1 = items.getText().toString();

发生的事情是,如果没有选中单选按钮,则显示toast,然后在if块执行后再执行语句,当你选中了单选按钮时,它会给出null,你最后调用getText()给出NullPointerException。所以把所有内容放在if else else之后。