Es gibt zwei editText-Felder. Das erste dient zur Eingabe von E-Mails. Wenn die E-Mail gültig ist, muss das zweite editText-Feld aktiviert werden. Das Problem besteht jedoch darin, dass Sie eine ungültige E-Mail eingeben und auf der Softtastatur auf die nächste Schaltfläche klicken zweites Textfeld und kann Daten eingeben, obwohl ich edittext.setEnabled (false) gemacht habe. Ich benutze Android 2.3.1
Aj10
Antworten:
42
Ich denke, es ist ein Fehler in Android. Es kann durch Hinzufügen dieses Patches behoben werden :)
Überprüfen Sie diese Links
Frage 1
und
Frage 2
Für diejenigen, die den Code lieber hier sehen möchten, als einen Hyperlink zu verwenden: editText.setEnabled(false);In Kombination mit editText.setFocusable(false);wird dies erreicht.
Mxyk
8
Das gleiche funktioniert mit XML: android:enabled="false"und android:focusable="false". Danke Leute!
Gelees
63
Sie können die EditText.setFocusable(false)Bearbeitung deaktivieren, um die Bearbeitung EditText.setFocusableInTouchMode(true)zu aktivieren.
Das war mein Problem. Ich nahm an, dass, nachdem setFocusable(false)ich setFocusable (true) einfach umdrehen konnte ... nicht der Fall. Das Einstellen setFocusableInTouchMode(true)hat den Trick für mich getan.
Gute Antwort, aber es kann verbessert werden, indem die Zeile entfernt wird, in der die Hintergrundfarbe geändert wird, und editText.setKeyListener (null) hinzugefügt wird.
Syed Raza Mehdi
10
Setzen Sie einfach die fokussierbare Eigenschaft Ihres Edittextes auf "false" und Sie sind fertig.
Laut mir ... wenn Sie das bereits edittextin der XML-Datei deklariert und die Eigenschaft in der XML-Datei festgelegt "android:enabled=false"und zur Laufzeit zu diesem Zeitpunkt in der Java-Datei deaktiviert haben und nur 2 oder 3 Zeilen hinzugefügt haben
Willkommen bei Stack Overflow, Nuwan Bandara. Ihre Antwort bezieht sich auf JTextArea und nicht auf EditText, das aus Android Framework stammt. Es ist unwahrscheinlich, dass Sie eine Antwort auf diese Frage geben.
Antworten:
Ich denke, es ist ein Fehler in Android. Es kann durch Hinzufügen dieses Patches behoben werden :)
Überprüfen Sie diese Links Frage 1 und Frage 2
Hoffe es wird nützlich sein.
quelle
editText.setEnabled(false);
In Kombination miteditText.setFocusable(false);
wird dies erreicht.android:enabled="false"
undandroid:focusable="false"
. Danke Leute!Sie können die
EditText.setFocusable(false)
Bearbeitung deaktivieren, um die BearbeitungEditText.setFocusableInTouchMode(true)
zu aktivieren.quelle
setFocusable(false)
ich setFocusable (true) einfach umdrehen konnte ... nicht der Fall. Das EinstellensetFocusableInTouchMode(true)
hat den Trick für mich getan.In Code:
editText.setEnabled(false);
Oder in XML:
android:editable="false"
quelle
Vorausgesetzt,
editText
Sie haben einEditText
Objekt:editText.setEnabled(false);
quelle
Sie können die folgende Methode ausprobieren:
private void disableEditText(EditText editText) { editText.setFocusable(false); editText.setEnabled(false); editText.setCursorVisible(false); editText.setKeyListener(null); editText.setBackgroundColor(Color.TRANSPARENT); }
EditText aktiviert:
EditText deaktiviert:
Es funktioniert für mich und hoffe, es hilft Ihnen.
quelle
Setzen Sie einfach die fokussierbare Eigenschaft Ihres Edittextes auf "false" und Sie sind fertig.
<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>
Die folgenden Optionen funktionieren nicht
In Code:
editText.setEnabled(false);
Oder in XML:android:editable="false"
quelle
Edittext edittext = (EditText)findViewById(R.id.edit); edittext.setEnabled(false);
quelle
Aktivieren:
private void enableEditText() { mEditText.setFocusableInTouchMode(true); mEditText.setFocusable(true); mEditText.setEnabled(true); }
Deaktivieren:
private void disableEditText() { mEditText.setEnabled(false); mEditText.setFocusable(false); mEditText.setFocusableInTouchMode(false); }
quelle
Der folgende Code deaktiviert den EditText in Android
editText.setEnabled(false);
quelle
Sie können schreiben,
edittext.setInputType(0)
wenn Sie den Edittext anzeigen möchten, aber keine Werte eingeben möchtenquelle
edittext.setFocusable(false); edittext.setEnabled(false); InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); imm.hideSoftInputFromWindow(edittext.getWindowToken(), 0); //removes on screen keyboard
quelle
So deaktivieren Sie einen Edittext in Android:
editText.setEnabled(false);
quelle
Laut mir ... wenn Sie das bereits
edittext
in der XML-Datei deklariert und die Eigenschaft in der XML-Datei festgelegt"android:enabled=false"
und zur Laufzeit zu diesem Zeitpunkt in der Java-Datei deaktiviert haben und nur 2 oder 3 Zeilen hinzugefügt habenHolen Sie sich durch ID
et1 = (EditText) FindViewById(R.id.edittext1);
et1.setEnabled(false);
Sie können jedes Steuerelement zur Laufzeit nach Java-Datei und zur Entwurfszeit nach XML-Datei aktivieren oder deaktivieren.
quelle
Schreiben Sie dies in Eltern:
android:descendantFocusability="beforeDescendants" android:focusableInTouchMode="true"
Beispiel:
<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" />
quelle
Die XML-
editable
Eigenschaft ist seit API LEVEL 15 veraltet .Sie sollten jetzt die
inputType
Eigenschaft mit dem Wert verwendennone
. Es gibt jedoch einen Fehler, der diese Funktionalität unbrauchbar macht.Hier können Sie den Problemstatus verfolgen.
quelle
Setzen Sie das
inputType
Attribut in Ihrer Datei layout.xml unter EditText auf nonequelle
versuchen Sie diesen Kotlin-Code,
editField.isEnabled = !editField.isEnabled
quelle
Klicken Sie mit der rechten Maustaste auf den Textbereich und deaktivieren Sie die bearbeitbare Option:
quelle