Почему я получаю NPE, когда Activity
уже создан/context
уже инициализирован?Почему я получаю NullPointerException в `getResources(). GetStringArray()` пока активность уже создана?
ОБЪЯСНЕНИЕ:
Я внутри onActivityCreated
метода фрагмента, который обеспечивает Activity
уже создан, и, таким образом, context
уже инициализирован. Я получаю ресурсы приложения, как:
Log.i
выше утверждение отпечатков
APPRESOURCES >>> [email protected]
Внутри populateList(appResources)
метод, называемый выше, я создаю объект MyParentObject
и передать appResources
в конструктор:
private List<ParentObject> populateList(Resources appResources) {
...
MyParentObject myParentObject = new MyParentObject(appResources);
...
}
В MyParentObject
классе
public class MyParentObject implements ParentObject {
Resources appResources;
...
public MyParentObject(Resources appResources) {
this.appResources = appResources;
}
...
private String [] spinnerFields = appResources.getStringArray(R.array.spinnerFields_arrayResource);//******ERROR********
...
}
Оператор, который присваивает spinnerFields
где я получаю NPE.
Примечание: Первоначально я проходил вокруг context
объекта, полученного из getActivity()
в onActivityCreated()
фрагмента. Но в процессе отладки для этого NPE я перешел на обход объекта appResources
.
На какой линии вы получаете сообщение об аварии? – Blackbelt
Основы java ... что происходит первым? конструктор или инициализатор поля? http://ideone.com/vLmnVW – Selvin
@Blackbelt В последнем фрагменте, последнее утверждение! Тот, который присваивает 'spinnerFields'. Я добавил '// ******** ERROR ***************' к нему. – Solace