android– 如何让TalkBack自动读取TextView错误信息?

android– 如何让TalkBack自动读取TextView错误信息?,第1张

概述我目前正在使我的应用程序可访问,我的EditTexts有问题:在每个EditText中,用户的输入在某个时刻被验证(例如,在按下按钮之后),如果输入无效,我使用editText.setError(“message”)显示错误.问题是如果TalkBack打开,它将不会自动聚焦并读取错误.此外,由于我无法得到错误的视图,我不能

我目前正在使我的应用程序可访问,我的EditTexts有问题:

在每个EditText中,用户的输入在某个时刻被验证(例如,在按下按钮之后),如果输入无效,我使用editText.setError(“message”)显示错误.问题是如果TalkBack打开,它将不会自动聚焦并读取错误.此外,由于我无法得到错误的视图,我不能要求TalkBack通过sendAccessibilityEvent集中它.

如果仍然使用editText.setError(),我将不胜感激如何解决这个问题.

编辑1为@Abhishek V解决方案添加了代码:

public class BaseEditText extends EditText {    ...    ...    @OverrIDe    public voID setError(CharSequence error) {        super.setError(error);        announceForAccessibility(error);    }}

解决方法:

您可以通过VIEw提供的announceForAccessibility(“mesage”)函数显式读出错误消息

editText.setError("message")editText.announceForAccessibility("message");

请注意,此功能已在API级别16中添加.

更新1:在EditText中更改文本时将错误消息设置为null,以防止一次又一次地读取错误消息.

 editText.addTextChangedListener(new TextWatcher() {            @OverrIDe            public voID beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {            }            @OverrIDe            public voID onTextChanged(CharSequence charSequence, int i, int i1, int i2) {                editText.setError(null);            }            @OverrIDe            public voID afterTextChanged(Editable editable) {            }        });
总结

以上是内存溢出为你收集整理的android – 如何让TalkBack自动读取TextView错误信息?全部内容,希望文章能够帮你解决android – 如何让TalkBack自动读取TextView错误信息?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1111193.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存