RadioGroup, setEnabled (false) не работает!

Я использовал setEnabled (false), чтобы установить его неспособным, но он не работает. И после этого метода значение RadioGroup.IsEnabled () является ложным. Значение было изменено.

Код находится в руководстве по программированию Android. Ps: Компонент Spinner использует setEnabled (false).

Код выглядит следующим образом:

Пакет com.example.testviews;

import android.app.Activity; import android.graphics.Color; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.RadioGroup; public class TestRadioGroup extends Activity { @Override public void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.radiogroup); final RadioGroup testRadioGroup = (RadioGroup) findViewById(R.id.testRadioGroup); final Button changeEnabledButton = (Button) findViewById(R.id.changeEnabledButton); changeEnabledButton.setOnClickListener(new OnClickListener() { public void onClick(View v) { // TODO Auto-generated method stub changeEnabled(testRadioGroup); } }); final Button changeBgColorButton = (Button) findViewById(R.id.changeBackgroundColorButton); changeBgColorButton.setOnClickListener(new OnClickListener() { public void onClick(View v) { // TODO Auto-generated method stub changeBgColor(testRadioGroup); } }); } protected void changeBgColor(RadioGroup testRadioGroup) { // TODO Auto-generated method stub testRadioGroup.setBackgroundColor(Color.BLUE); } protected void changeEnabled(RadioGroup testRadioGroup) { // TODO Auto-generated method stub if (testRadioGroup.isEnabled()) { testRadioGroup.setEnabled(false); } else { testRadioGroup.setEnabled(true); } } 

}

Solutions Collecting From Web of "RadioGroup, setEnabled (false) не работает!"

Используйте следующий метод:

 for (int i = 0; i < testRadioGroup.getChildCount(); i++) { testRadioGroup.getChildAt(i).setEnabled(false); } 

Представления могут быть составлены несколькими касающимися элементами. Вы должны отключить их все, например:

 for(View lol : your_spinner.getTouchables() ) { lol.setEnabled(false); } 

Если он является простым, так как он также возвращает себя:

Найдите и верните все осязаемые виды, которые являются потомками этого представления, возможно, включая этот вид, если он осязает сам.

Просмотр # getTouchables ()

Вы не можете использовать следующий код;

 for(View lol : your_spinner.getTouchables() ) { lol.setEnabled(false); } 

После того, как представления отключены, больше нет осязаемых представлений child / descentant.