Deshabilitar Spinner en Android

2 minutos de lectura

avatar de usuario
xin

Estoy teniendo problemas al usar android:enabled="false"no es deshabilitar la componente en el caso de que sea un spinner. No sé si es relevante, pero pertenece a un diseño que es parte de un viewflipper.

¿Alguna sugerencia o solución?

Gracias

avatar de usuario
himb2001

Desactívelo o habilítelo antes de configurar el adaptador.

yourSpinner.setEnabled(false);   
yourSpinner.setClickable(false);  
yourSpinner.setAdapter(typeAdapter);

  • no he encontrado que incluya setClickable es necesario, al menos no en API 24. ¿Alguien ha encontrado que está en alguna otra versión de Android?

    – Jon

    22 de diciembre de 2016 a las 21:24


  • Más importante aún, a partir de hoy, los giradores no respetan en absoluto el atributo en el que se puede hacer clic, ya sea que se haya establecido en XML o en el código.

    – Zonker.en.Ginebra

    6 de mayo de 2020 a las 11:46

  • no tiene nada que ver con configurar el adaptador, puedes hacerlo antes o después, no importa, ¿por qué lo mencionaste?

    – usuario924

    20 de mayo de 2020 a las 10:04

No es posible habilitar/deshabilitar un Spinner en XML (todavía). Para hacerlo tienes que hacerlo en código.

Aquí hay un ejemplo:

Spinner spinner = (Spinner) findViewById(R.id.mySpinner);
spinner.setEnabled(false);

avatar de usuario
Céfiro

puedes configurar android:clickable="false" en el xml para deshabilitar el spinner para hacer clic event.

  • Deshabilitar usando setEnabled(booleano) es más flexible que configurarlo dentro de XML

    – Erick

    10 de septiembre de 2015 a las 3:52

  • @Erick No estoy de acuerdo contigo, depende del caso de uso

    – Mehdi Dehghani

    26 de julio de 2018 a las 10:45

  • Hay un error de Android que no respeta clickable para hilanderos.

    – Zonker.en.Ginebra

    6 de mayo de 2020 a las 11:47

  • Probado con Android 11 y no funciona.

    – صلي علي محمد Atef Farouk

    13 de noviembre de 2021 a las 4:08

avatar de usuario
AlbeyAmakiir

Puede establecer esto en el propio código Java, en lugar de en el XMLporque el Spinner debería implementar setEnabled(boolean) de View.

¿Ha sido útil esta solución?