Стиль кнопки, чтобы выглядеть как EditText (но все же вести себя как кнопка)

Я понимаю, что это какая-то странная вещь, но у меня есть кнопка, которая должна выглядеть как EditText, но все же вести себя как кнопка. Теперь мой формат XML выглядит так:

<Button android:layout_width="match_parent" android:layout_height="wrap_content" style="?android:attr/editTextStyle" /> 

Это дает ему вид EditText, но также немного путается с поведением, предотвращая запуск события onClick, если кнопка не имеет фокуса (фактически для этого требуется два клика). Есть ли способ сохранить стиль, не изменяя поведение кнопки?

Я думал о том, чтобы создать фон с девятью патчами, который выглядит как EditText, но с таким количеством различных версий Android и скинов, я бы предпочел использовать системный стиль, если это возможно.

Как насчет EditText, который ведет себя как кнопка?

 <EditText android:id="@+id/Edit" android:layout_width="fill_parent" android:layout_height="wrap_content" android:focusable="false" android:focusableInTouchMode="false" android:clickable="true"/> 

Вы также можете определить OnClickListener. И это не сфокусируется.

Если вам абсолютно необходимо быть кнопкой, вы можете добавить слушателя фокуса к своей кнопке, которая запускает onclick, когда кнопка получает фокус.

 weirdoButton.setOnFocusChangeListener(new OnFocusChangeListener() { @Override public void onFocusChange(View view, boolean hasFocus) { if(hasFocus) { weirdoButton.performClick(); } } }); 

Недостатком является то, что щелчок будет срабатывать, когда кнопка получит фокус через трекбол или d-pad. Сделайте его un-focus-able в файле макета:

 <Button android:id="@+id/weirdoButton" android:layout_width="match_parent" android:layout_height="50dip" android:focusable="false" style="?android:attr/editTextStyle" /> 

Принятый ответ позволяет вам стилизовать EditText как кнопку, но я нашел расхождение в нем; Когда вы долго нажимаете на него, он позволяет вставлять в него текст, который ужасен с точки зрения UX. Это то, что я применил вместо этого, чтобы создать его как edittext

  `<Button android:layout_width="0dp" android:layout_height="wrap_content" android:textSize="16sp" android:focusable="false" android:id="@+id/btnAddMember" style="?android:attr/editTextStyle" android:focusableInTouchMode="false" android:clickable="true" android:hint="Button Content"/> 

`