如何在 Android 首选项视图上设置内容描述

car*_*go8 7 android accessibility preferenceactivity android-preferences sharedpreferences

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

基本上我需要一种方法来获取表示偏好的视图的句柄。这将允许我在视图上 setContentDescription(...)。

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

小智 0

从首选项获取视图是显而易见的方法,因为setContentDescription()可以在任何视图上调用。现在,如何获取视图还没有很好的文档记录,但相当简单。在您的 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");
    }
Run Code Online (Sandbox Code Playgroud)