Android 从自定义首选项获取视图
在我的应用程序中,我的首选项屏幕如下所示:Android 从自定义首选项获取视图,android,android-xml,android-preferences,Android,Android Xml,Android Preferences,在我的应用程序中,我的首选项屏幕如下所示: <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" > <CheckBoxPreference android:key="state" android:title="@string/stateTitle" android:summary="@string/
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" >
<CheckBoxPreference
android:key="state"
android:title="@string/stateTitle"
android:summary="@string/stateSummary"
android:defaultValue="false" />
<Preference
android:key="test"
android:layout="@layout/pref_control"
android:dependency="state" />
</PreferenceScreen>
由于您使用的是PreferenceActivity,因此可以使用:
final CheckBoxPreference stateCheckBox = (CheckBoxPreference)findPreference("state");
大概是:
final Preference testPreference = (Preference)findPreference("test");
它已被弃用,但应该可以使用。您可以通过使用活动中的
首选项p=findPreferences(“test”)
来获得首选项(如果您使用的是较新版本的Android,最好使用PreferenceFragment)
在该对象上,您可以调用.getView(convertView,parent)
。出于您的目的,可以使用null作为参数调用该方法:findPreferences(“test”).getView(null,null)
HTH是的,我当然知道,但我在测试首选项中使用自定义布局。在这个布局中有一个按钮,我想得到这个按钮,但在
首选项对象中,我没有一个名为findviewbyd()
或其他方法。哦,我明白了,我想这取决于您使用findviewbyd的时间。我原以为只要在你把布局放大之后就可以了。我认为你应该发布导致异常的代码。我用代码更新了我的问题。你认为我必须再次为自己的布局充气才能使用上面的代码吗?如果你需要做的只是设置文本,只需在XML中进行设置。
final Preference testPreference = (Preference)findPreference("test");