我有一个如下文本字段:
<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");
}
});
有没有其他人遇到并解决过这个问题?
答案 0 :(得分:0)
只是一个黑客,但是没有尝试过。
设置setContentDescription()
,每个数字之间有空格。或者您也可以在每个角色之间使用(char)160
。