2016-09-27 13 views
0

Я хочу знать/узнать, как включить кнопку, когда/если переключатель проверяетсяAndroid - Как включить кнопку, если установлен переключатель?

шаги сделали

Я создал фрагмент и внутри радио группы с 3-мя кнопками радио внутри

гол

Моя главная цель состоит в том, чтобы активировать кнопку, когда переключатель установлен, и вывести его из строя, когда кнопка радио бесконтрольно

Код

До сих пор у меня есть этот код

public class Operations extends Fragment 
{ 
    RadioButton surfArea, rad, diam; 
    RadioGroup radG; 
    Button openSelect; 

    public Operations() 
    { 
     // Required empty public constructor 
    } 

    public static Operations newInstance() 
    { 
     return new Operations(); 
    } 

    @Override 
    public void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
    } 

    @Override 
    public View onCreateView(LayoutInflater inflater, 
          ViewGroup container, 
          Bundle savedInstanceState) 
    { 
     View rootView = inflater.inflate(R.layout.fragment_operations_sphere, container, false); 

     surfArea = (RadioButton) rootView.findViewById(R.id.RB_surfArea); 
     rad = (RadioButton) rootView.findViewById(R.id.RB_Rad); 
     diam = (RadioButton) rootView.findViewById(R.id.RB_Diam); 
     openSelect = (Button) rootView.findViewById(R.id.btn_open_select); 

     radG = (RadioGroup) rootView.findViewById(R.id.RG_group); 

     openSelect.setEnabled(false); 

     openSelect.setOnClickListener(new View.OnClickListener() 
     { //This piece of code is for testing purposes 
      @Override 
      public void onClick(View v) 
      { 
       if (surfArea.isChecked()) 
       { 
        openSelect.setEnabled(true); //I detected my mistake here, so I would like to know a better way to achieve this 
        Intent sa = new Intent(getContext(), OperSphere.class); 
        startActivity(sa); 
       } 
      } 
     }); 

     return rootView; 
    } 

    @Override 
    public void onResume() 
    { //Here the radio button unchecks 
     radG.clearCheck(); 
     super.onResume(); 
    } 
} 

Вопрос

Как включить кнопку, когда переключатель проверяется?

Некоторые примеры были бы большими

Заранее спасибо

+0

Радио кнопки не может быть снят. Вам придется вручную реализовать эту функциональность. – Zarwan

+0

Да, это внутри 'public void onResume()' метод, я сделал исследование о том, как это сделать, а также разместил вопрос здесь в SO – NAYIR55

ответ

2

К сожалению мой плохой, здесь попробовать это решение;

Поскольку вы используете RadioGroup, установите для этого слушателя эту кнопку, чтобы отключить или включить кнопку.

RadioGroup radG = (RadioGroup) findViewById(R.id.yourRadioGroup);   
radG.setOnCheckedChangeListener(new OnCheckedChangeListener() 
{ 
    @Override 
    public void onCheckedChanged(RadioGroup group, int checkedId) { 
     // checkedId is the RadioButton selected 
     switch(checkedId) 
     { 
     case R.id.surfArea:  
     //enable or disable button 
     break; 

     case R.id.rad: 
     //enable or disable button   
     break; 

     case R.id.diam: 
     //enable or disable button  
     break; 
     } 
    } 
}); 
+1

Извините, это не отвечает на мой вопрос – NAYIR55

+0

Теперь этот ответ на мой вопрос, спасибо для этого – NAYIR55

1

Просто используйте следующий фрагмент кода:

@Override 
     public void onCheckedChanged(RadioGroup radioGroup, int checkedId) { 

      switch (checkedId) { 
       case R.id.RB_surfArea: 
        // here set button enable/disable to true/false 
        break; 
       case R.id.RB_Rad: 
        // here set button enable/disable to true/false 
        break; 
       case R.id.RB_Diam: 
        // here set button enable/disable to true/false 
        break; 
      } 
     } 
1

Вы можете установить слушателя на кнопку радио, как другие предложили, а затем переключить переключатель включения и выключения с помощью функции вы сделали.

radG.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { 
    @Override 
    public void onCheckedChanged(RadioGroup group, int checkedId) { 
     if (checkedId == R.id.radioButtonId) { 
      toggleCheck(); 
     } 
    } 
}); 

Где toggleCheck() может быть что-то вроде этого:

if (radG.isChecked()) { 
    radG.clearCheck(); 
    button.setEnabled(false); 
} else { 
    radG.select(); 
    button.setEnabled(true); 
} 
Смежные вопросы