无法在PreferenceCategory中创建首选项

时间:2014-02-06 14:50:18

标签: android preferences preferenceactivity

我正在尝试在代码首选项类别中创建。 它工作正常。但是如果我尝试将Preference添加到我的类别中,我会得到NullPointer异常。

        Preference p1 = new Preference(getActivity());
        p1.setTitle("Edit name");

        PreferenceCategory prefcat = new PreferenceCategory(getActivity());
        prefcat.setTitle("title");
        prefcat.setSummary("summ");
        prefcat.addPreference(p1); // HERE I GET NULL POINTER
        ps.addPreference(prefcat);

ps - 它的首选屏幕对象。 为什么?我尝试调试它,Exception抛出PreferenceCategory的onPrepareAddPreference方法。 Hpw修复它?

1 个答案:

答案 0 :(得分:3)

您正尝试将子项(即p1)添加到父项(即prefcat)中,该项尚未包含在族(即Preference)层次结构中。

首先,将prefcat添加到“首选项”屏幕,然后添加prefcat个孩子。那就是,颠倒最后两行的顺序:

ps.addPreference(prefcat);
prefcat.addPreference(p1);

很高兴它有所帮助! :)