2014-02-06 3 views
2

Я пытаюсь создать в категории предпочтений кода. Он работает правильно. Но если я попытаюсь добавить предпочтение в свою категорию, я получаю исключение NullPointer.Cant create Preference in Preference Категория

 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 - его преференции экранный объект. Почему? Я пытаюсь отладить его, Исключение выбрано методом onPrepareAddPreference PreferenceCategory. Hpw, чтобы исправить это?

+2

Попробуйте изменить порядок последних двух строк: 'ps.addPreference (prefcat); prefcat.addPreference (p1); ' – ozbek

+0

@shoerat, это сработало, спасибо! Вы должны написать это как ответ, чтобы я мог его продвигать! – Anonsage

+1

@ Анимация, эя через 9 месяцев это было полезно, по крайней мере, для двух человек! :) – ozbek

ответ

4

Вы пытаетесь добавить ребенка (то есть, p1) к родителю (т.е. prefcat), который не существует в семье (то есть, Preference) иерархия еще.

Сначала добавьте prefcat в экран предпочтений, а затем добавьте детей prefcat. То есть измените порядок двух последних строк:

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

Рад, что это помогло! :)

+0

безупречный! и разумный. –