RadioGroup, setEnabled (false)no funciona!


He usado setEnabled(false) para configurarlo unable,Pero no funciona. y después de este método, el valor de RadioGroup.IsEnabled () es false. El valor fue cambiado.

El código es de la Guía de Programación de Android. Pd: El componente Spinner usa el setEnabled (false) está bien.

El código es el siguiente:

Paquete com.ejemplo.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);
    }
}

}

Author: JasonW, 2012-11-07

3 answers

Utilice el siguiente método:

for (int i = 0; i < testRadioGroup.getChildCount(); i++) {
    testRadioGroup.getChildAt(i).setEnabled(false);
}
 71
Author: mango,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-09-25 08:50:47

Las vistas se pueden componer con varios elementos táctiles. Tienes que desactivarlos todos, así:

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

Si es simple ya que también se devuelve a sí mismo:

Busca y devuelve todas las vistas tocables que son descendientes de esta vista, posiblemente incluyendo esta vista si es tocable en sí.

Ver#getTouchables()

 3
Author: josetapadas,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-10-18 09:42:58

No puedes usar el siguiente código;

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

Una vez que las vistas se han desactivado, ya no hay vistas menores/descendentes tocables.

 0
Author: puresprout,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-06-25 05:34:13