2012-04-18 14 views
5

Probado con Android 1.6 (4) y 2.3.3 (10).Android EditText inputType = "none" no funciona, se convierte en "textMultiLine"

He hecho una aplicación de prueba minimalista para demostrar esto, lo único que hace es cargar el xml con:

setContentView(R.layout.main); 

y el XML es:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:orientation="vertical" > 

<TextView 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="@string/hello" /> 

<EditText 
    android:id="@+id/editText1" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:inputType="none" 
    android:ems="10" > 

</EditText> 

El problema :

al configurar inputType="none" el tipo de entrada real durante la ejecución viene textMultiLine(0x00020001), lo he comprobado con un depurador.

Por otro lado, si uso inputType="text", funciona como se esperaba.

¿Es esto un error en Android?

Respuesta

12

Yo tenía el mismo problema: la definición del tipo de entrada a través de XML que no funcionó.

Entonces, para solucionarlo, que establece el tipo de entrada mediante programación:

@Override 
public void onActivityCreated(@Nullable Bundle savedInstanceState) 
    { 
    ... 
    editText1= (EditText) super.getActivity().findViewById(R.id.editText1); 
    editText1.setInputType(InputType.TYPE_NULL); // none... 
    ... 
    } 

que funciona para mí.

+4

mejor usar 'setInputType (InputType.TYPE_NULL)' –

1

Uso android:editable="false". Aunque está en desuso, funciona cuando inputType no lo hace.

1

Utilice esta

textView.setKeyListener(null); 
1

Configuración InputType = "none" xml no funciona, pero si utiliza el enlace de datos, puede usar la sintaxis de enlace para establecer el tipo de Entrada.

importación del tipo ..

<data> <import type="android.text.InputType" /> </data>

continuación, enlazar el valor

<EditText android:id="@+id/edit_text" android:inputType="@{InputType.TYPE_NULL}" />

Cuestiones relacionadas