Android宣布号码编辑文本为数字

时间:2016-02-12 14:04:16

标签: android accessibility

我有一个如下文本字段:

<EditText android:id="@+id/credit_card_number"
          android:layout_width="match_parent"
          android:layout_height="wrap_content"
          android:inputType="number" />

问题在于,当TalkBack打开时,它会将该值声明为单个数字,而不是单个数字。在这种特殊情况下,因为它是一张信用卡,我需要它完全是数字的(因此输入类型为&#34;数字&#34;)。但是,以可访问性的方式宣布它是没有意义的。

我一直无法找到一种方法让talkBack宣布为个别数字。

我已经尝试过自定义文本观察器来设置contentDescription,但似乎没有任何影响它如何阅读它。

我还尝试了一个辅助功能代理,但即使它在调试器中触发,它也没有改变对用户的读取内容:

cardNumberText.setAccessibilityDelegate(new View.AccessibilityDelegate() {
            @Override
            public void onPopulateAccessibilityEvent(final View host, final AccessibilityEvent event) {
                event.getText().add("foobar");
                event.setContentDescription("foobar");
            }
        });

有没有其他人遇到并解决过这个问题?

1 个答案:

答案 0 :(得分:0)

只是一个黑客,但是没有尝试过。 设置setContentDescription(),每个数字之间有空格。或者您也可以在每个角色之间使用(char)160