Как сделать кнопку, отображающую символ backspace (⌫) на Android?

Я пытаюсь использовать символ ⌫ в качестве своего символа backspace в приложении для Android. Когда я просто копирую и вставляю этот символ в текстовое значение моей кнопки, он работает и показывает символ в симуляторе, но когда я пытаюсь установить этот символ динамически на Java или когда я пытаюсь используйте базовое латинское значение (\u232b), оно просто показывает пробелы.

Это когда я использую редактор XML и значение strings.xml:

enter image description here

Мой strings.xml:

<?xml version="1.0" encoding="utf-8"?>
  <resources>
      <string name="backSpace">⌫</string>
  </resources>   

В Java я пробовал hardcoding, как это, но все они приводят к пробелу:

((Button) mView.findViewById(R.id.buttonClear)).setText("⌫");   
((Button) mView.findViewById(R.id.buttonClear)).setText("\u232b");` 
((Button) mView.findViewById(R.id.buttonClear)).setText('\u232b'+"");` 

Ответ 1

Похоже, что шрифт Android по умолчанию (Roboto/droid sans serif) не включает этот символ, поэтому он не может его отобразить (я до сих пор не понял, как это показывает предварительный просмотр). Поэтому вам нужно найти шрифт, который поддерживает этот символ. Лучший кандидат, которого я нашел, - Arial Unicode MS, но они тоже работают:

  • Quivira (бесплатно)
  • Symbola
  • Segoe UI (телефон для Windows)
  • DejaVu sans (бесплатно)
  • Символы Apple

Ответ 2

Этот символ не U + 0008. U + 0008 является управляющим символом без графического представления.

U + 232B (символ "стереть влево" ), поэтому, если вы используете "\u232b" в своем приложении, он должен быть в порядке.

Ответ 3

Для чего это стоит, они предлагают стандартный значок, который представляет этот символ. Он является частью формы "Icon Icon Pack Pack" здесь. Он находится в этой папке:

\Android Design - Icons 20131120\Action Bar Icons\holo_light\05_content_backspace

enter image description here

Ответ 4

Мой подход - использовать ImageButton вместе со стандартными платформами Drawables. Фактически вы можете видеть стандартные Drawables, доступные для разных платформ, просматривая каталог Android SDK: Sdk/platforms/android-XXX/data/res/

Это дает вам кнопку с символом обратного пространства:

    <ImageButton
        android:src="@drawable/sym_keyboard_return"
        ...
    />

Примечание. Google фактически советует напрямую ссылаться на ресурсы Android и советует создавать локальную копию (см. здесь). Поэтому попробуйте описанное выше, чтобы увидеть, как выглядит значок (или просмотрите папки SDK, упомянутые выше, чтобы увидеть все прямые .png-чертежи), но для создания лучше всего скопировать .png-изображения для каждого требуемого разрешения, чтобы ваш собственный проект и ссылайтесь на них.

Для чего стоит, есть и другие очень полезные символьные изображения, такие как символ "return" (например, sym_keyboard_return.png). По некоторым причинам многие из них, такие как sym_keyboard_return, не упоминаются в android.R, поэтому вам обязательно нужно скопировать этот конкретный проект в свой проект.

Ответ 5

Пример: 1

Если вы хотите, чтобы действие этого символа стирания, используйте это -

<Key android:codes="-5" android:keyLabel="⌫"
            android:keyWidth="15%p" android:keyEdgeFlags="right"
           android:isRepeatable="true"/>

Пример: 2

Если вы просто хотите отобразить символ и не нуждаетесь в действии символа стирания, используйте это -

<Key android:codes="0x232B" android:keyLabel="⌫"
        android:keyWidth="15%p" android:keyEdgeFlags="right"
        android:isRepeatable="true"/>