2011-09-13 13 views
48

Una situación muy extraña, tengo este código que se supone que hace que EditText sea archivable si SpnSelected.equals ("Servicio") y editable de nuevo, si es algo más.EditText.setFocusable (falso); no se puede establecer en verdadero. :/

final EditText etAdd = (EditText)dialogAddTextView.findViewById(R.id.etSymb); 

    if (SpnSelected.equals("Service")) 
    { 
     etAdd.setFocusable(false); 
     TextView tvInfo = (TextView)dialogAddTextView.findViewById(R.id.tvAddTextInfo); 
    } 
    else 
    { 
     etAdd.setFocusable(true); 
     TextView tvInfo = (TextView)dialogAddTextView.findViewById(R.id.tvAddTextInfo); 
    } 

sí lo hace bien no editable, pero no trae la posibilidad de editar espalda con etAdd.setFocusable (true);

¿Alguna idea de qué hacer al respecto? ¡Gracias! :)

+0

no 'setEnabled (true/false)' ser más apropiado? –

+0

funciona. solo hace que el texto sea un poco gris, como si fuera inhabilitado. por lo tanto, setFocusable sería más preferible, solo que no funciona. :) – Roger

Respuesta

160

Trate

etAdd.setFocusableInTouchMode(true); 
etAdd.setFocusable(true); 

en lugar de sólo

etAdd.setFocusable(true); 
+1

funciona! :) ¡Gracias hombre! – Roger

+7

me salvas el tono del tiempo. –

+5

Según la documentación para '.setFocusableInTouchMode()' llamando '.setFocusableInTouchMode (true)' hace que la llamada '.setFocusable (true)' sea innecesaria. Es decir. solo necesita llamar a 'etAdd.setFocusableInTouchMode (true);' –

-3

Usted tiene que fijar el EditarTexto a

etAdd.setEnabled(false); 
2

Esta solución ha funcionado para mí:

EditText test3 = (EditText) findViewById(R.id.edittext); 
CheckBox check1= (CheckBox) findViewById(R.id.checkBox1); 
test3.setClickable(false); 
test3.setEnabled(false); 
test3.setFocusable(false); 
check1.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { 
    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { 
     if(check1.isChecked()){ 
     test3.setText(""); 
     test3.setClickable(false); 
     test3.setEnabled(false); 
     test3.setFocusable(false); 
     } else { 
     test3.setClickable(true); 
     test3.setEnabled(true); 
     test3.setFocusable(true); 
     test3.setFocusableInTouchMode(true); 
     } 
    } 
}); 

Después de marcar la casilla, el texto de edición está deshabilitado.

espero que ayude a alguien :)

0

utilizo a continuación se centran código y haga clic en Retirar y agregar:

Quitar: secondFirstHalfEditText.setClickable(false); secondFirstHalfEditText.setFocusable(false);

Añadir:

editText.setClickable(true); 
editText.setFocusableInTouchMode(true); 
editText.setFocusable(true); 

Debe utilizar esto para el texto activo de Edit >>

editText.setFocusableInTouchMode(true); 

Me funciona perfectamente

Cuestiones relacionadas