android:hint 在 styles.xml 中声明,但仍有警告“您应该为 EditText 提供 `android:hint`”

Posted

技术标签:

【中文标题】android:hint 在 styles.xml 中声明,但仍有警告“您应该为 EditText 提供 `android:hint`”【英文标题】:android:hint declared in styles.xml but still have warning "You should provide an `android:hint`" for EditText 【发布时间】:2021-03-14 13:43:52 【问题描述】:

标题很好地总结了它:我在我的活动中使用了几个 EditText,每个都代表不同玩家的名字。所以他们有所有共同点,这就是为什么我创造了一种风格来将它应用到所有的人身上。 问题是,即使我以我的风格初始化了 android:hint,警告仍然是:“缺少可访问性标签:minSdk android:hint”。有没有办法解决这个警告(除了使用工具:忽略)? 当然,在 edit_text.xml 中定义 android:hint 将是一个解决方案,但如果是这样:(为什么)不建议在 styles.xml 中这样做?这是故意的还是错误的?

edit_text.xml:

<!-- Warning on `EditText` -->
<EditText
    android:id="@+id/edit_player2"
    style="@style/EditTextPlayer"
    android:layout_
    android:layout_
    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>

附: 您会注意到我在 edit_text.xml 中留下了属性 android:autofillHints,因为它在 styles.xml 中给出了错误(需要 API 级别 26)。

【问题讨论】:

当然在edit_text.xml中定义android:hint是一个解决方案,但如果是这样:(为什么)不建议在styles.xml中这样做?这是故意的还是错误的? 【参考方案1】:

您需要在 strings.xml 中定义一个名为“player_name”的字符串资源。

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

【讨论】:

它已经被定义了......我得到的唯一警告是“你应该在标签EditText上提供一个android:hint”,但我在styles.xml中定义了它。

以上是关于android:hint 在 styles.xml 中声明,但仍有警告“您应该为 EditText 提供 `android:hint`”的主要内容,如果未能解决你的问题,请参考以下文章

styles.xml 中的自定义属性

styles.xml 和 theme.xml 有啥区别

创建样式-v21.xml

相当于Xcode中android的styles.xml

EditText 中 android:hint 和 android:autofillHints 的区别

如何*动态*改变 iOS/Android 的每种颜色?例如。在 Droid 代码中,覆盖“Styles.xml”中的“colorAccent”