如何优先获取小部件?

时间:2013-05-27 09:17:36

标签: android android-preferences

在Android中,有很多内置偏好设置,例如CheckBoxPreferenceEditTextPreference。除了这些内置首选项,我们还可以通过扩展Preference类来自定义一些首选项。我们也可以在这些偏好设置中获取小部件,例如checkboxedittext

1 个答案:

答案 0 :(得分:0)

我认为你所谈论的是prefs屏幕中Preferences的结尾处显示的小部件,对吧? 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);
}

然后,当pref更改时,您可以对视图执行所需的操作。