问题描述
<PreferenceScreen xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:android="http://schemas.android.com/apk/res/android">
<Preference
android:key="myKey"
android:layout="@layout/my_layout" />
<ListPreference
app:defaultValue="@string/defaultGender"
app:entries="@array/gender_entries"
app:entryValues="@array/gender_values"
app:key="gender"
app:title="@string/gender"
app:useSimpleSummaryProvider="true" />
我正在尝试在 my_layout
中设置 TextView 的值:
public static class MyFragment extends PreferenceFragmentCompat {
@Override
public void onCreatePreferences(Bundle savedInstanceState,String rootKey) {
setPreferencesFromresource(R.xml.preference_screen,rootKey);
TextView textView= (TextView) this.getActivity().findViewById(R.id.myTextView);
textView.setText("XXX");
}
}
但我在 NullPointerException
上得到 textView.setText("XXX");
我做错了什么?
解决方法
尝试在 onViewCreated 函数中设置文本。
@Override
public void onViewCreated (View view,Bundle savedInstanceState) {
TextView textView= (TextView) this.getActivity().findViewById(R.id.myTextView);
textView.setText("XXX");
}