gpt4 book ai didi

java - PreferenceFragment 空指针异常

转载 作者:行者123 更新时间:2023-12-01 07:04:14 24 4
gpt4 key购买 nike

public class MyPrefs extends PreferenceActivity {

public static class MyPreferenceFragment extends PreferenceFragment
{
@Override
public void onCreate(final Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.preferences);
}
}

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

MyPreferenceFragment frag = new MyPreferenceFragment();

getFragmentManager().beginTransaction().replace(android.R.id.content, frag).commit();

Preference pref;
pref = frag.findPreference("pref_gps_updates");

pref.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
return true;
}
});

}
}

由以下原因引起:java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法“void android.preference.Preference.setOnPreferenceChangeListener(android.preference.Preference$OnPreferenceChangeListener)”

我不明白为什么会发生这个崩溃或者我做错了什么?

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" >

<EditTextPreference
android:key="pref_gps_updates"
android:inputType="number"
android:title="@string/pref_gps_updates"
android:summary="@string/pref_gps_updates_summary"
android:defaultValue="60" />

</PreferenceScreen>

最佳答案

Preference pref;
pref = frag.findPreference("pref_updates");

pref.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
return true;
}
});

将此部分放入 FragmentonCreate() 中(NOT 位于 Activity onCreate 中),并仔细检查键 pref_updates 在您的 xml 中使用。

更新:

public class MyPrefs extends PreferenceActivity {

public static class MyPreferenceFragment extends PreferenceFragment
{
@Override
public void onCreate(final Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.preferences);


Preference pref;
pref = findPreference("pref_gps_updates");

pref.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
return true;
}
});
}
}

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

MyPreferenceFragment frag = new MyPreferenceFragment();

getFragmentManager().beginTransaction().replace(android.R.id.content, frag).commit();

}
}

关于java - PreferenceFragment 空指针异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30279824/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com