You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何设置numberPassword类型EditText仅播报hint无障碍提示内容

解决方案

以下是两种可直接落地的实现方式:

方案1:自定义无障碍代理,修改播报逻辑

该方案无需改动原有输入框配置,仅通过拦截无障碍信息实现需求,改动成本最低:
给目标TextInputEditText设置自定义无障碍代理,覆盖系统默认的内容描述规则:

val routingEdit = findViewById<TextInputEditText>(R.id.textInputRoutingNumber)
routingEdit.setAccessibilityDelegate(object : View.AccessibilityDelegate() {
    override fun onInitializeAccessibilityNodeInfo(host: View, info: AccessibilityNodeInfo) {
        super.onInitializeAccessibilityNodeInfo(host, info)
        // 直接将内容描述设为hint值,覆盖系统自动追加的「密码」前缀
        info.contentDescription = host.hint
        // 如有需要,可以补充拼接已输入位数:
        // info.contentDescription = "${host.hint},已输入${routingEdit.text?.length ?: 0}位"
    }
})

Java版本代码:

TextInputEditText routingEdit = findViewById(R.id.textInputRoutingNumber);
routingEdit.setAccessibilityDelegate(new View.AccessibilityDelegate() {
    @Override
    public void onInitializeAccessibilityNodeInfo(View host, AccessibilityNodeInfo info) {
        super.onInitializeAccessibilityNodeInfo(host, info);
        info.setContentDescription(host.getHint());
    }
});

方案2:自主实现掩码逻辑,避免使用numberPassword类型

如果不想修改无障碍相关配置,可以放弃系统自带的密码输入类型,自己实现数字掩码效果,TalkBack自然不会追加「密码」前缀:

  1. 修改布局中的inputType属性为普通数字类型:
<com.google.android.material.textfield.TextInputEditText
    android:id="@+id/textInputRoutingNumber"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:maxLength="9"
    android:hint="Enter Routing Number"
    android:inputType="number" />
  1. 给输入框添加输入过滤器,将输入内容替换为掩码符号,同时单独存储原始输入值供业务逻辑使用:
// 单独声明变量存储真实输入的路由号码
var rawRoutingNumber = ""
routingEdit.filters = arrayOf(InputFilter { source, start, end, dest, dstart, dend ->
    val inputPart = source.subSequence(start, end).toString()
    rawRoutingNumber += inputPart
    // 返回同等长度的掩码字符替换输入内容
    "•".repeat(inputPart.length)
})

注意该方案需要自行处理删除、选中修改等场景下的原始值同步逻辑。

内容的提问来源于stack exchange,提问作者Paras Dhawan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.11 01:45:03