Come disabilitare EditText in Android
-
28-10-2019 - |
Domanda
Come posso disabilitare la digitazione in un EditText
campo in Android?
Altri suggerimenti
Puoi usare EditText.setFocusable(false)
Per disabilitare il montaggioEditText.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:
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
- Prima crea l'oggetto
- Dichiarare EditText ET1;
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.