2017-10-19 81 views
0

如何获取我的简单单选按钮测验的值到新的XML布局页面。我不确定发生了什么事。当我点击按钮时,它强制关闭。获取RadioButton的值

TextView hasil; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    Button btnSubmit = (Button) findViewById(R.id.submit); 
    btnSubmit.setOnClickListener(new View.OnClickListener(){ 

     @Override 
     public void onClick(View view){ 
      int score = 0; 
      if (((RadioButton)findViewById(R.id.radioButton1)).isChecked()) {score++;} 
      if (((RadioButton)findViewById(R.id.radioButton8)).isChecked()) {score++;} 
      if (((RadioButton)findViewById(R.id.radioButton11)).isChecked()) {score++;} 
      if (((RadioButton) findViewById(R.id.radioButton16)).isChecked()){score++;} 
      if (((RadioButton) findViewById(R.id.radioButton19)).isChecked()){score++;} 
      if (((RadioButton) findViewById(R.id.radioButton24)).isChecked()){score++;} 
      if (((RadioButton) findViewById(R.id.radioButton25)).isChecked()){score++;} 
      if (((RadioButton) findViewById(R.id.radioButton29)).isChecked()){score++;} 

      displayResult(score); 
     } 

    }); 
} 

private void displayResult(int score) { 
    String message = "You scored " + score; 
    message += " out of 6"; 
    message += "\nWell done!"; 
    hasil.setText(message); 
} 
+0

请在崩溃时发布logcat – Lal

回答

1

您似乎没有初始化hasil TextView。 通过用适当的ID替换HASIL_ID,在OnCreate方法中添加以下行。

hasil = (TextView) findViewById(R.id.HASIL_ID); 
1

您应该添加logcat消息,以便可以知道是什么导致您的应用程序崩溃。

但是,如果你想知道哪个单选按钮被选中,你可以尝试下面的代码。

int score=0; 
RadioGroup rg = (RadioGroup)findViewById(R.id.YOUR_RADIO_GROUP_ID); 
switch (rg.getCheckedRadioButtonId()) { 
       case R.id.radioButton1: 
        score++; 
        break; 
       case R.id.radioButton8: 
        score++; 
        break; 
       case R.id.radioButton11: 
        score++; 
        break; 
       case R.id.radioButton16: 
        score++; 
        break; 
       case R.id.radioButton19: 
        score++; 
        break; 
       case R.id.radioButton24: 
        score++; 
        break; 
       case R.id.radioButton25: 
        score++; 
        break; 
       case R.id.radioButton29: 
        score++; 
        break; 
       default: 
        break; 
      } 

我假设你已经将无线电按钮放在无线电组内。