android - 如何在 Android 首选项 View 上设置内容描述

标签 android sharedpreferences accessibility android-preferences preferenceactivity

有没有办法将内容描述添加到表示 PreferenceFragment 或 PreferenceActivity 中的首选项的 View 中?

基本上我需要一种方法来获取代表偏好的 View 的句柄。这将允许我在 View 上设置内容描述(...)。

令人惊讶的是,这并没有直接作为首选项 xml 文件中的 xml 属性公开,因为这是一个可访问性功能,它似乎应该在任何可以代理/生成 UI 元素的地方出现。

最佳答案

从首选项中获取 View 是显而易见的方法,因为 setContentDescription()可以在任何 View 上调用。现在,如何获取 View 没有很好的文档记录,但它相当简单。在您的 Preference Fragment 类中,执行以下操作:

public class SettingsFragment extends PreferenceFragment {
    
    ...
    private Preference toGetViewFrom;
    private ViewGroup parent;
    private View obtainedView;

    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        ...
        parent = container;
        obtainedView = toGetViewFrom.getView(null, parent);
        //Now do whatever you want with your view. In your case,
        obtainedView.setContentDescription("Content Description");
    }

关于android - 如何在 Android 首选项 View 上设置内容描述,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26268298/

相关文章:

Android:限制 Webview 中的缩小

iOS 辅助功能 - 如何为 UINavigationBar 的标题设置辅助功能标签?

google-maps - 带有 Google map js api 的键盘可访问标记

android - 位图缓存如何工作?

java - Android数据绑定(bind)问题绑定(bind)适配器调用两次

java - 错误: “Syntax error on token ” ;“, , expected”

java - 如何在 Android 中设置来自不同类的类的背景/布局

java - 在 SQLite 数据库中插入数据与在 Android 中使用 SharedPreferences

java - Android Studio SharedPreferences 和内部存储不起作用

xhtml - 哪个替代文本最适合屏幕阅读器,例如 "smiling kid"?