Mir ist klar, dass das eine seltsame Sache ist, aber ich habe einen Button, der wie ein EditText aussehen muss, aber sich trotzdem wie ein Button verhält. Mein Layout-XML sieht momentan so aus:
%Vor%Dadurch entsteht der Eindruck eines EditText, aber auch das Verhalten wird etwas durchkreuzt, indem verhindert wird, dass das onClick-Ereignis ausgelöst wird, es sei denn, die Schaltfläche hat den Fokus (wodurch effektiv zwei Klicks erforderlich sind). Gibt es eine Möglichkeit, den Stil beizubehalten, ohne das Verhalten der Schaltfläche zu ändern?
Ich dachte darüber nach, einen Hintergrund mit neun Patches zu erstellen, der wie ein EditText aussieht, aber bei so vielen verschiedenen Android-Versionen und Skins würde ich lieber den System-Stil verwenden, wenn es möglich ist.
Wie wäre es mit einem EditText, der sich wie eine Schaltfläche verhält?
%Vor%Sie können dafür auch einen OnClickListener definieren. Und es wird keinen Fokus bekommen.
Wenn es unbedingt eine Schaltfläche sein muss, können Sie Ihrer Schaltfläche einen Fokus-Listener hinzufügen, der den Onclick auslöst, wenn die Schaltfläche den Fokus erhält.
%Vor%Der Nachteil ist, dass der Klick ausgelöst wird, wenn die Taste den Fokus über einen Trackball oder ein D-Pad erhält. Machen Sie es in der Layout-Datei unfokussierbar:
%Vor%Die akzeptierte Antwort lässt Sie EditText als eine Schaltfläche formatieren, aber ich fand eine Diskrepanz darin; wenn Sie lange darauf drücken, können Sie Text einfügen, der in Bezug auf UX schrecklich ist.
Dies habe ich stattdessen angewendet, um es als EditText zu stylen.
%Vor%Tags und Links android android-edittext android-button