2012-06-26 21 views
12

El programa que estoy realizando tiene varias vistas en las que el usuario intenta básicamente descifrar una gran cantidad de valores booleanos. Suena extraño, pero lo que quiero decir es que mi dispositivo se conectará a otro dispositivo a través de Bluetooth y luego leerá el estado de ese dispositivo. Básicamente, visualizo una lista de verificación del estado actual de ese dispositivo. Entonces, dependiendo de lo que esté haciendo ese dispositivo, se verifican diferentes casillas de verificación. ¿Hay alguna manera de hacer que todas las casillas de verificación no sean seleccionables?¿Es posible hacer que una casilla de verificación/botón de opción no sea verificable?

Aún mejor, ¿hay alguna manera de codificar esto en el archivo XML?

Respuesta

28

Ha considerado el uso android:clickable para un atributo XML para sus casillas?

De la documentación:

Define si este punto de vista reacciona a los eventos de clic.

Si no puede reaccionar a los eventos de clics, se desactiva.

+1

¿cuál es la diferencia entre android: clicable y android: habilitado? – JuiCe

+1

'clickable' se utiliza para determinar si un evento de clic se debe enviar o no a una' Vista'. 'enabled' se define en' View', pero debe ser interpretado por sus subclases. http://developer.android.com/reference/android/view/View.html#isEnabled() –

12
<CheckBox 
     android:id="@+id/blahblah" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:enabled="false" /> 

y en su código puede llamar cbox.setChecked(boolean)

+0

¿cuál es la diferencia entre Android: hacer clic y android: habilitado? – JuiCe

4

para ampliar lo que crocboy y nicholas.hauschild dijeron.

Al establecer esta en ti XML

android:enabled="false" 

hará que el botón/casilla ser en gris, para mostrar que está deshabilitado

Otra forma de hacer esto es configurarlo para:

android:clickable="false" 

Aquí está el código para hacer un RadioButton que es rojo, que se vuelve verde cuando está marcado (en su código), pero no puede ser verificado por el usuario.

android:checked="false" 
    android:textColor="#d1d2d4" 
    android:buttonTint="#d1202d" 
    android:textColorHighlight="#248d51" 
    android:clickable="false" 

y aquí está el código para comprobar que (esto es utilizando JSON: por lo que es comprobar si == Inglés "sí")

String yes = "yes"; 
    if(yourObject.english.equals(yes)) { 
     if (m_english.isChecked()) {/*do nothing */} 
     else m_english.toggle(); 
    } 
Cuestiones relacionadas