1

在 Android 中,有很多内置的首选项,例如CheckBoxPreference, EditTextPreference. 除了这些内置的首选项,我们可以通过扩展Preference类来自定义一些首选项。那么我们可以在这些首选项中获得一个小部件,例如checkbox,edittext吗?

4

1 回答 1

0

我认为您在谈论的是首选项屏幕中首选项末尾显示的小部件,对吗?Android 将允许您通过 widgetLayout 属性在 xml 中设置这些小部件:

<com.me.MyPreference
        android:key="my_key"
        android:widgetLayout="@layout/my_layout"
        android:title="@string/my_title"/>

或通过一些函数在代码中,但没有提供太多在运行时访问实际的膨胀布局(例如,更新复选框的状态)。查看CheckboxPreference代码,Google 通过在 Prefs onBindView函数中获取对小部件的引用来解决此问题:

@Override
protected void onBindView(View view) {
    super.onBindView(view);
    myWidget = (MyWidget) view.findViewById(R.id.my_widget);
}

然后当首选项更改时,您可以稍后对视图执行您想要的操作。

于 2017-05-08T18:47:31.003 回答