{"id":2613,"date":"2023-06-21T16:15:22","date_gmt":"2023-06-21T14:15:22","guid":{"rendered":"https:\/\/www.art-events.de\/weblog\/?p=2613"},"modified":"2023-06-21T19:01:10","modified_gmt":"2023-06-21T17:01:10","slug":"android-edittext-setfocusabletrue-geht-nicht-mehr","status":"publish","type":"post","link":"https:\/\/www.art-events.de\/weblog\/android-edittext-setfocusabletrue-geht-nicht-mehr\/","title":{"rendered":"Android: Edittext.setfocusable(true) geht nicht mehr"},"content":{"rendered":"<p><strong>Android Problem:<\/strong><\/p>\n<p>Hintergrund: Ihr habt ein EditText Steuerelement zur Laufzeit (im Programmcode) mit setFocusable (false) deaktiviert. Damit ist es zwar sichtbar, der Benutzer kann aber keine Eingaben machen. Auf setEnabled wolltet ihr verzichten, da dieses auch die Darstellung \u00e4ndert.<\/p>\n<p>Wenn ihr das Steuerelement jedoch wieder mit setFocusable aktiviert, funktioniert es nicht. Immer wenn der User den Cursor manuell ins Feld stellt, fliegt er wieder raus. So als ob das Feld weiterhin gesperrt w\u00e4re.<\/p>\n<p><strong>L\u00f6sung:\u00a0<\/strong><\/p>\n<p>Zum erneuten Aktivieren zur Laufzeit m\u00fcsst ihr nun zwei Werte auf true setzen: setFocusable UND setFocusableInTouchMode! Unabh\u00e4ngig davon, dass man es vereinfachen k\u00f6nnte &#8211; richtig w\u00fcrde es dann so aussehen:<\/p>\n<pre>EditText et_time = findViewById(R.id.editTextUserTime);\r\n\r\nif (_EditTimeDateFlag) { \r\n   \/\/user may edit time\r\n   et_time.setFocusableInTouchMode(true); \r\n   et_time.setFocusable(true); \r\n} \r\nelse { \r\n   \/\/time is locked\r\n   et_time.setFocusable(false); \r\n}<\/pre>\n<p>Bei setFocusable(false) wird der InTouchMode automatisch deaktiviert! Bei true aber nicht automatisch wieder eingeschaltet! Derartiges geh\u00f6rt f\u00fcr mich in das Land der Kuriosit\u00e4ten. Aber ich kommentiere das nicht weiter. Ihr k\u00f6nnt nur haufenweise Debugging Zeit sparen, wenn ihr das beachtet!<\/p>\n<hr \/>\n<p><a href=\"https:\/\/www.art-events.de\/weblog\/wp-content\/uploads\/2021\/06\/20080607hjwx-204.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-2104\" src=\"https:\/\/www.art-events.de\/weblog\/wp-content\/uploads\/2021\/06\/20080607hjwx-204.jpg\" alt=\"\" width=\"204\" height=\"153\" \/><\/a><\/p>\n<p>Text und Entwurf. (c) AE SYSTEME Testcenter, Hans-J. Walter<\/p>\n<p>Hans-J. Walter ist Programmierer von AE WWS Lite und f\u00fcr Anwendungen in Windows DOT.NET \/ C# und Java \/ Android Apps. Dazu ist er als Autor f\u00fcr journalistische Fachbeitr\u00e4ge \u00fcber relevante Technik, Trends und Innovationen unterwegs. Kontakt:\u00a0<a href=\"mailto:hjw@terminal-systems.de\">hjw@terminal-systems.de<\/a><\/p>\n<p>F\u00fcr diese und alle nachfolgenden Seiten gilt der obligatorische Hinweis: Alle Angaben ohne Gew\u00e4hr. Bilder und Codes zeigen Beispiele. Beschreibungen beziehen sich auf aktuell bei uns vorliegenden Zustand und stellen keine Bewertung der verwendeten Techniken da. Fehler und \u00c4nderungen vorbehalten!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Android Problem: Hintergrund: Ihr habt ein EditText Steuerelement zur Laufzeit (im Programmcode) mit setFocusable (false) deaktiviert. Damit ist es zwar sichtbar, der Benutzer kann aber keine Eingaben machen. Auf setEnabled wolltet ihr verzichten, da dieses auch die Darstellung \u00e4ndert. Wenn ihr das Steuerelement jedoch wieder mit setFocusable aktiviert, funktioniert es nicht. Immer wenn der User [&hellip;]<\/p>\n","protected":false},"author":6,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[33,34],"tags":[],"class_list":["post-2613","post","type-post","status-publish","format-standard","hentry","category-android","category-programmierung","entry"],"_links":{"self":[{"href":"https:\/\/www.art-events.de\/weblog\/wp-json\/wp\/v2\/posts\/2613","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.art-events.de\/weblog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.art-events.de\/weblog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.art-events.de\/weblog\/wp-json\/wp\/v2\/users\/6"}],"replies":[{"embeddable":true,"href":"https:\/\/www.art-events.de\/weblog\/wp-json\/wp\/v2\/comments?post=2613"}],"version-history":[{"count":0,"href":"https:\/\/www.art-events.de\/weblog\/wp-json\/wp\/v2\/posts\/2613\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.art-events.de\/weblog\/wp-json\/wp\/v2\/media?parent=2613"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.art-events.de\/weblog\/wp-json\/wp\/v2\/categories?post=2613"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.art-events.de\/weblog\/wp-json\/wp\/v2\/tags?post=2613"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}