从自定义首选项获取视图
在我的应用程序中,我有一个PreferenceScreen,它看起来像这样:
<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获取pref_control.xml
的视图? 我尝试了正常的findViewById()
但以NullPointerException结束。 这是我的代码,导致异常:
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.preferences);
((Button) findViewById(R.id.startTime)).setText("bla");
((Button) findViewById(R.id.endTime)).setText("bla");
}
您可以通过使用Preference p = findPrefences("test")
来获得首选项(如果您使用的是Android的更新版本,则可以更好地使用PreferenceFragment)。
在那个对象上,你可以调用.getView(convertView, parent)
。 出于您的目的,应该可以使用null作为参数来调用该方法: findPreferences("test").getView(null, null)
。
HTH
由于您使用的是PreferenceActivity,因此您可以使用:
final CheckBoxPreference stateCheckBox = (CheckBoxPreference)findPreference("state");
据推测:
final Preference testPreference = (Preference)findPreference("test");
它已被弃用,但它应该工作。
链接地址: http://www.djcxy.com/p/19677.html