Domanda

Come posso disabilitare la digitazione in un EditText campo in Android?

È stato utile?

Soluzione

Penso che sia un bug in Android ... può essere risolto aggiungendo questa patch :)
Controlla questi collegamentidomanda 1eDomanda 2

Spero che sia utile.

Altri suggerimenti

Puoi usare EditText.setFocusable(false) Per disabilitare il montaggio
EditText.setFocusableInTouchMode(true) per abilitare l'editing;

Nel codice:

editText.setEnabled(false);

Oppure, in XML:

android:editable="false"

Supponendo editText sei tu EditText oggetto:

editText.setEnabled(false);

Puoi provare il seguente metodo:

 private void disableEditText(EditText editText) {
    editText.setFocusable(false);
    editText.setEnabled(false);
    editText.setCursorVisible(false);
    editText.setKeyListener(null);
    editText.setBackgroundColor(Color.TRANSPARENT); 
 }

Abilitato editText:

Enabled EditText

Disabled EditText:

Disabled EditText

Funziona per me e spero che ti aiuti.

Basta impostare la proprietà focalizzabile del tuo EditText su "False" e hai finito.

<EditText
        android:id="@+id/EditTextInput"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:focusable="false"
        android:gravity="right"
        android:cursorVisible="true">
    </EditText>

Di seguito le opzioni non funzionano

Nel codice:

editText.setEnabled(false);Oppure, in XML:android:editable="false"

Edittext edittext = (EditText)findViewById(R.id.edit);
edittext.setEnabled(false);

Il codice seguente disabilita EditText in Android

editText.setEnabled(false);
edittext.setFocusable(false); 
edittext.setEnabled(false);

InputMethodManager imm = (InputMethodManager)
  getSystemService(Context.INPUT_METHOD_SERVICE);

imm.hideSoftInputFromWindow(edittext.getWindowToken(), 0);
  //removes on screen keyboard

Abilitare:

private void enableEditText() {
    mEditText.setFocusableInTouchMode(true);
    mEditText.setFocusable(true);
    mEditText.setEnabled(true);
}

Disattivare:

private void disableEditText() {
    mEditText.setEnabled(false);
    mEditText.setFocusable(false);
    mEditText.setFocusableInTouchMode(false);
}

Per disabilitare un EditText in Android:

editText.setEnabled(false);

Tu puoi scrivere edittext.setInputType(0) Se si desidera mostrare EditText ma non inserire alcun valori

Scrivi questo in genitore:

android:descendantFocusability="beforeDescendants"
android:focusableInTouchMode="true"

Esempio:

<RelativeLayout 
android:id="@+id/menu_2_zawezanie_rl"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/menu_2_horizontalScrollView"
android:descendantFocusability="beforeDescendants"
android:focusableInTouchMode="true"
android:orientation="horizontal"
android:background="@drawable/rame">

<EditText
    android:id="@+id/menu2_et"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_centerVertical="true"
    android:layout_toLeftOf="@+id/menu2_ibtn"
    android:gravity="center"
    android:hint="@string/filtruj" >
</EditText>
<ImageButton
    android:id="@+id/menu2_ibtn"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_centerVertical="true"
    android:background="@null"
    android:src="@drawable/selector_btn" />

Secondo me ... se hai già dichiarato il edittext Nel file XML e impostare la proprietà nel file XML "android:enabled=false" e disabilita in fase di esecuzione in quel momento nel file Java aggiungendo solo 2 o 3 righe

  1. Prima crea l'oggetto
  2. Dichiarare EditText ET1;
  3. Ottieni per id

    et1 = (EditText) FindViewById(R.id.edittext1);
    et1.setEnabled(false);

È possibile abilitare o disabilitare ogni controllo in fase di esecuzione tramite il file Java e il tempo di progettazione tramite file XML.

L'XML editable La proprietà è deprecata da allora Livello API 15.

Dovresti usare ora il inputType Proprietà con il valore none. Ma c'è un bug che rende inutile questa funzionalità.

Qui Puoi seguire lo stato del problema.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top