0

Androidアプリに問題があります。最初にクリックすると2つのボタンが表示されますが、2番目にクリックすると、彼の仕事と最初の仕事が行われます。コードは次のとおりです。

IDの

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

最初に 1 つのボタンを押すと、そのボタンのみが切り替わります

もう一方のボタンを押すと、両方のボタンが切り替わります。したがってonCheckedChanged、ラジオボタンの 1 つを初めて押したときに 1 回チェックされ、次に 2 回チェックされます。

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 に答える