Android: как включить / отключить флажок, в зависимости от того, какой переключатель был выбран первым - PullRequest
1 голос
/ 23 марта 2012

Обычно у меня есть группа радиосвязи с двумя переключателями, одна из которых помечена как RUN, а другая - как PASS.Как раз под этим у меня также есть флажок с надписью «Pass Complete»

Вопрос: Как отключить флажок, если выбран переключатель «RUN» (чтобы флажок не был установлен), и включить егов то время как переключатель PASS выбран?Любая помощь в построении некоторого типа оператора IF будет принята с благодарностью.

XML

<RadioGroup
android:id="@+id/runandpass"
android:layout_width="fill_parent"
android:layout_height="wrap_content" 
androidrientation="horizontal">

<RadioButton
android:id="@+id/radiobuttonrun"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checked="true"
android:text="RUN" android:layout_weight="50"/>

<RadioButton
android:id="@+id/radiobuttonpass"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="PASS" 
android:layout_weight="50"/>
</RadioGroup>

<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content" 
androidrientation="horizontal">

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="50"
android:text="" />

<CheckBox
android:id="@+id/checkBoxcmpltpass"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Pass Complete" 
android:layout_weight="6"/>
</LinearLayout>

JAVA

package com.aces.acesfootballuk;

import android.app.Activity;
import android.os.Bundle;

public class CoachesPage extends Activity{

@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.coachespage);


}
};

Ответы [ 5 ]

4 голосов
/ 18 апреля 2012

Мне удалось ответить на мой вопрос с помощью небольшого исследования, может помочь и другим ...

private void initialize() {
    // TODO Auto-generated method stub
        RadioGroup1 = (RadioGroup) findViewById(R.id.runandpass);
        Radio1 = (RadioButton) findViewById(R.id.radiobuttonrun);
        Radio2 = (RadioButton) findViewById(R.id.radiobuttonpass);
        checkBoxcmpltpass = (CheckBox) findViewById(R.id.checkBoxcmpltpass);
        RadioGroup1.setOnCheckedChangeListener(this);
}


 public void onCheckedChanged(RadioGroup group, int checkedId) {
    // TODO Auto-generated method stub
    switch(checkedId){
    case R.id.radiobuttonrun:
        checkBoxcmpltpass.setEnabled(false);
    break;

    case R.id.radiobuttonpass:
        checkBoxcmpltpass.setEnabled(true);
    break;
    }
}
2 голосов
/ 23 марта 2012

попробуйте это:

        mRadioGroup1 = (RadioGroup) findViewById(R.id.runandpass);
        mRadio1 = (RadioButton) findViewById(R.id.radiobuttonrun);
        mRadio2 = (RadioButton) findViewById(R.id.radiobuttonpass);
        mcheckBoxcmpltpass= (RadioButton) findViewById(R.id.checkBoxcmpltpass);
        /*RadioGroup?OnCheckedChangeListener???*/
        mRadioGroup1.setOnCheckedChangeListener(mChangeRadio);
      }
      private RadioGroup.OnCheckedChangeListener mChangeRadio = new
               RadioGroup.OnCheckedChangeListener()
      {
        @Override
        public void onCheckedChanged(RadioGroup group, int checkedId)
        {
          // TODO Auto-generated method stub
          if(checkedId==mRadio1.getId())
          {
            /*?mRadio1*/
           mcheckBoxcmpltpass.disabled=false;
          }
          else if

(checkedId==mRadio2.getId())
      {
        /*?mRadio2*/
        mcheckBoxcmpltpass.disabled=true;
      }      
    }
  }; 
1 голос
/ 23 февраля 2016

попробуйте

  final CheckBox cl_chk = (CheckBox) view.findViewById(R.id.cl_chk);
  cl_chk.setEnabled(false);

Это поможет вам ...

1 голос
/ 23 марта 2012

Возможно, вы захотите добавить прослушиватель к вашему флажку, который проверит выбор и обновит другие представления при необходимости.

 captureGrp = (RadioGroup) findViewById(R.id.runandpass);
 myRadio1 = (RadioButton) findViewById(R.drawable.radio1);
 myRadio2 = (RadioButton) findViewById(R.drawable.radio2);
 myRadio3 = (RadioButton) findViewById(R.drawable.radio3);

 captureGrp.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {

     public void onCheckedChanged(RadioGroup group, int checkedId) {


            if (checkedId == R.id.radio1) {
                //disable and enable as needed
            } else if (checkedId == R.id.radio2) {
                // disable as needed
            } else {
                // add as many as you need
            }
        }
1 голос
/ 23 марта 2012

Используйте Radiogroup.setOnCheckedChangeListener, затем при проверке изменений используйте checkbox.setenable

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...