Ist es möglich, EditText
klickbar, aber nicht bearbeitbar zu machen ?
Ich möchte nicht, dass es bearbeitet werden kann (Weder sollte die Tastatur hochfahren, noch sollten wir den Hinweis ändern können).
Eigentlich möchte ich Text bearbeiten einfach als Bild mit einem Hinweis verwenden (der nicht geändert werden kann). Ich weiß, dass der eigentliche Weg darin bestand, ein ImageView
und eins zu verwenden TextView
, aber ich möchte, dass es versucht wird, EditText
da ich dann nur eine Ansicht anstelle von 2 verwende. Außerdem ist alles dynamisch, also kein XML.
Für die oben genannte Anforderung ist die Lösung in XML, android:editable="false"
aber ich möchte dies in Java verwenden.
Aber,
Wenn ich benutze: -
et.setEnabled(false);
oder
et.setKeyListener(null);
Es macht das EditText
nicht BEARBEITBAR, aber gleichzeitig macht es es auch nicht anklickbar.
quelle
et.setClickable(true)
? Es könnte klappen.Antworten:
Der Trick hier ist: -
quelle
Sie können
EditText
mithilfe von Java-Code Folgendes festlegen: -oder indem Sie den folgenden Code in der XML-Datei für verwenden
EditText
.quelle
Da
editable
ist veraltet. Sie können beim Entwerfen von XMLandroid:inputType
als keine oder beim Codieren als InputType.TYPE_NULL verwenden.Und unten ist das Klickereignis von
edittext
quelle
Sie können dies verwenden ..
Um edittext in xml nicht bearbeitbar zu machen. Und für ein anklickbares Ereignis können Sie das setOnTouchListener () -Ereignis verwenden , um dasselbe zu tun wie ..
quelle
android:focusableInTouchMode="false"
es auchandroid:focusable="false"
in Android O erforderlich ( allein funktioniert nicht). Zumindest in DP2.android:editable
ist veraltet, aber Sie können stg wie folgt tun:Ich habe die obige Cade für Edittexte verwendet, in denen ich Picker zum Einstellen von Daten verwende. Sie können damit das Eingabelayout verwenden.
quelle
Edittext
Aktivieren und deaktivieren Sie diese Option für die Bearbeitungquelle
Für mich führte keine der Antworten zu einer vollständig funktionierenden Lösung.
Schaufenster meines Fixes https://www.youtube.com/watch?v=oUA4Cuxfdqc
Leitfaden (noob-freundlich) , bitte beachten Sie die wenigen Kommentare im Code.
Erstellen Sie eine Java-Klasse für eine benutzerdefinierte Klasse
EditText
namens EditTextDispatched.javaVerweisen Sie auf die
EditTextDispatched
in Ihrer XML (Sie müssen den pgk-Namen ändern):So rufen Sie auf:
quelle
Vielleicht kannst du es versuchen
quelle
Ich weiß, dass diese Frage bereits beantwortet wurde, aber um eine aktuellere Antwort (dh 2018) zu geben, verwende ich das Setup, um den angeforderten (dh nicht eingegebenen oder bearbeitbaren) Effekt zu erzielen:
Ja, dies ist ANKO, da ich in keinem meiner Android-Projekte mehr XML verwende. Der 'inputType' kümmert sich um die 'isEditable'-Abwertung.
quelle
Wenn Sie sich ab 2020 auch um die Barrierefreiheit kümmern, sollten Sie die Einstellung vermeiden,
et.setFocusable(false);
da dadurch der EditText nicht über die Tastaturnavigation erreichbar ist.Hier ist meine Lösung:
Kotlin
quelle
Sie können dies auch
android:inputMethod="@null"
in Ihrem tunEditText
und es wird weder der Cursor noch die Tastatur angezeigt, und dann können Sie den Klick durch das Einstellen des Listeners leicht erfassen.quelle