android – 从自定义首选项获取视图

前端之家收集整理的这篇文章主要介绍了android – 从自定义首选项获取视图前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在我的应用程序中,我有一个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");
}

解决方法

您可以通过在Activity中使用Preference p = findPrefences(“test”)来获取Preference(如果您使用的是较新版本的Android,则可以更好地使用PreferenceFragment).

在该对象上,您可以调用.getView(convertView,parent).为了您的目的,可以使用null作为参数调用方法:findPreferences(“test”).getView(null,null).

HTH

猜你在找的Android相关文章