2012-02-27 27 views
29

Estoy tratando de poner un EditarTexto que no se puede editar con este código:EditarTexto no editable

<EditText android:id="@+id/outputResult" 
      android:inputType="text" 
      android:editable="false" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:text="@string/result" /> 

he tenido que añadir esto para no editable

android:focusable="false" 

¿Estoy haciendo algo mal?

Gracias verry mucho

+0

¿Qué quieres realmente? –

+0

saber por qué no funciona solo con android: editable = "false". Gracias. – Jjreina

+0

@Zortkun: Eso es exactamente lo que pide el OP. – Squonk

Respuesta

88

android:editable="false" debe trabajar, pero it is deprecated, usted debe utilizar android:inputType="none" lugar.

Alternativamente, si desea hacerlo en el código que puede hacer esto:

EditText mEdit = (EditText) findViewById(R.id.yourid); 
mEdit.setEnabled(false); 

Ésta es también una alternativa viable:

EditText mEdit = (EditText) findViewById(R.id.yourid); 
mEdit.setKeyListener(null); 

Si usted va a hacer su EditText no editable, puedo sugerir usar el widget TextView en lugar del EditText, ya que usar un EditText parece un tanto inútil en ese caso.

EDIT: alterado alguna información ya he encontrado que android:editable es obsoleto, y se debe utilizar android:inputType="none", pero hay un error al respecto en el código de Android; Por lo tanto, por favor marque this.

+0

Gracias con trabajo alternativo pero Android: editable = "falso" no – Jjreina

+2

El uso de textview es mejor en este caso –

2
<EditText 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:id="@+id/editTexteventdate" 
      android:background="@null" 
      android:hint="Date of Event" 
      android:textSize="18dp" 
      android:textColor="#fff" 
      android:editable="false" 
      android:focusable="false" 
      android:clickable="false" 

      /> 

Añadir este

androide: editable = "false"

androide: enfocable = "false"

androide: se puede hacer clic = "false"

su trabajo para mí

+0

Como editable está obsoleto, use esto en su lugar: 'android: inputType =" none "' (junto con los otros que tiene). – BlueBoy

+0

No porque funcione para usted también debería funcionar para nosotros. ¿Ha publicado esto el 19 de mayo de este año, por lo que debe saber que ha proporcionado una respuesta obsoleta? Vamos... –

3

En caso de que quiera hacer un EditarTexto no editable de código:

void disableInput(EditText editText){ 
    editText.setInputType(InputType.TYPE_NULL); 
    editText.setTextIsSelectable(false); 
    editText.setOnKeyListener(new View.OnKeyListener() { 
     @Override 
     public boolean onKey(View v,int keyCode,KeyEvent event) { 
       return true; // Blocks input from hardware keyboards. 
     } 
    }); 
} 

En caso de que quiera eliminar la línea horizontal de su EditarTexto, sólo tiene que añadir:

editText.setBackground(null); 

Si desea para permitir a los usuarios copiar el contenido de EditText y luego usar:

editText.setTextIsSelectable(true);