android: подсказка, объявленная в styles.xml но все равно есть предупреждение «Вы должны предоставить `android: подсказку`» для EditText

#android #android-layout #android-edittext #android-styles

#Android #android-layout #android-edittext #android-стили

Вопрос:

Заголовок хорошо подводит итог: я использую в своей деятельности несколько EditTexts, каждый для имени другого игрока. Так что у них есть все общее, вот почему я создал стиль, чтобы применить его ко всем из них. Проблема в том, что даже если я инициализировал android: подсказку в моем стиле, предупреждение по-прежнему остается: «Отсутствует метка доступности: где minSdk < 17, вы должны предоставить android:hint «. Есть ли какой-нибудь способ исправить это предупреждение (кроме использования tools:ignore)? Конечно, определение android: подсказка в edit_text.xml было бы решением, но если да: (почему) не рекомендуется ли делать это в styles.xml ? Это сделано специально или ошибка?

edit_text.xml:

 <!-- Warning on `EditText` -->
<EditText
    android:id="@ id/edit_player2"
    style="@style/EditTextPlayer"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:autofillHints="username" />
 

styles.xml:

 <style name="EditTextPlayer">
    <item name="android:minEms">8</item>
    <item name="android:maxLength">12</item>
    <item name="android:padding">4dp</item>
    <item name="android:layout_margin">4dp</item>
    <item name="textSize">@dimen/button</item>
    <item name="android:visibility">gone</item>
    <item name="android:background">@drawable/black_background</item>
    <item name="android:inputType">textFilter|textNoSuggestions</item>
    <item name="android:imeOptions">flagNoFullscreen|actionDone</item>
    <item name="android:gravity">center_horizontal</item>
    <item name="android:hint">@string/player_name</item> <!-- hint is here ^^ -->
</style>
 

P.S.
Вы можете заметить, что я оставил в edit_text.xml атрибут android:autofillHints , потому что он выдает ошибку в styles.xml (требуется уровень API 26).

Комментарии:

1. Конечно, определяя android:hint в edit_text.xml было бы решением, но если да: (почему) не рекомендуется ли делать это в styles.xml ? Это сделано специально или ошибка?

Ответ №1:

Вам нужно определить строковый ресурс внутри strings.xml с именем «player_name».

  <string name="player_name">Insert your name here</string>
 

Комментарии:

1. Оно уже определено… Единственное предупреждение, которое я получил, это «Вы должны указать android:hint » в теге EditText , но я определяю его в styles.xml .