0

我的 android 应用程序有问题我有两个按钮,如果我点击第一个它的工作正常,但如果我点击第二个它做他的工作和第一个工作,这是代码:

对于身份证

rbYes = (RadioButton) findViewById(R.id.rbYes);
    rbNo = (RadioButton) findViewById(R.id.rbNo);

对于方法

public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
    // TODO Auto-generated method stub
    switch(buttonView.getId()){
    case R.id.rbYes:
        flag=true;
        etLastHourse.setEnabled(flag);
        etLastHourse.setBackgroundColor(Color.WHITE);
        etLastGPA.setEnabled(flag);
        etLastGPA.setBackgroundColor(Color.WHITE);
        Toast.makeText(getApplicationContext(), "OK1", Toast.LENGTH_LONG).show();

    break;
    case R.id.rbNo:
        Toast.makeText(getApplicationContext(), "OK", Toast.LENGTH_LONG).show();
        flag=false;
        etLastHourse.setEnabled(flag);
        etLastHourse.setEnabled(flag);
        etLastHourse.setBackgroundColor(Color.GRAY);
        etLastGPA.setEnabled(flag);
        etLastGPA.setBackgroundColor(Color.GRAY);



    break;

    }
}

对于 xml

  <RadioButton
            android:id="@+id/rbNo"
            style="@style/RadioButton"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textColor="#FFFFFF"
            android:text="no"
             />

        <RadioButton
            android:id="@+id/rbYes"
            style="@style/RadioButton"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textColor="#FFFFFF"
            android:text="yes" />
4

1 回答 1

1

当您第一次按下一个按钮时,您只会切换该按钮

当您按下另一个按钮时,您会切换两个按钮。因此,您onCheckedChanged第一次按下其中一个单选按钮时会检查一次,下次按下两次。

取自http://developer.android.com/guide/topics/ui/controls/radiobutton.html

public void onRadioButtonClicked(View view) {
   // Is the button now checked?
   boolean checked = ((RadioButton) view).isChecked();

   // Check which radio button was clicked
   switch(view.getId()) {
      case R.id.radio_pirates:
         if (checked)
            // Do all things here for this button
         break;
      case R.id.radio_ninjas:
         if (checked)
            // Do all things here for this button
         break;
}

如果选中按钮,只需执行您想做的事情。

于 2012-12-04T11:36:19.133 回答