2012-04-18 15 views
5

Testato con Android 1.6 (4) e 2.3.3 (10).Android EditText inputType = "none" non funziona, diventa "textMultiLine"

Ho fatto un applicazione di test minimalista per dimostrare questo, tutto ciò che fa è caricare il xml con:

setContentView(R.layout.main); 

e l'XML è:

<?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> 

Il problema :

quando si imposta inputType="none" il tipo di input effettivo durante l'esecuzione essere viene textMultiLine(0x00020001), l'ho controllato con un debugger.

D'altra parte se uso inputType="text" funziona come previsto.

Si tratta di un bug in Android?

risposta

12

ho avuto lo stesso problema: la definizione del tipo di ingresso tramite XML non ha funzionato.

Quindi, per risolvere il problema, ho impostato il tipo di ingresso programatically:

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

che funziona per me.

+4

meglio usare 'setInputType (InputType.TYPE_NULL)' –

1

Usa android:editable="false". Anche se è deprecato, funziona quando inputType no.

1

Utilizzare questa

textView.setKeyListener(null); 
1

Impostazione InputType = "none" xml non funziona, ma se si utilizza l'associazione dati, è possibile utilizzare la sintassi dell'associazione per impostare il tipo di input.

importazione del tipo ..

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

quindi associare il valore

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

Problemi correlati