У меня в приложении есть просмотрщик с 4 фрагментами. Один из моих фрагментов имеет открытый метод, который возвращает значение из счетчика.
Но иногда, когда я вызываю метод для ссылки на фрагмент, я получаю нулевое исключение:
Attempt to invoke virtual method 'java.lang.Object android.widget.Spinner.getSelectedItem()' on a null object reference
И это метод, который я вызываю на фрагменте:
public String getCategoryId() {
if (spVendorCategories.getSelectedItem() != null) {
String categoryId =
((VendorCategory) spVendorCategories.getSelectedItem()).getId();
return categoryId;
}
return null;
}
Сбой происходит во второй строке.
Я создаю фрагмент в своей деятельности в onCreate:
GeneralSettingsFragment generalSettingsFragment = GeneralSettingsFragment.newInstance(generalSettings);
А потом я получаю значение в методе события onClick:
@OnClick(R.id.save_vendor_settings_button)
void onSaveVendorSettingsButtonClick() {
if (generalSettingsFragment != null) {
String categoryId = generalSettingsFragment.getCategoryId();
// rest of the code
}
}
Похоже, справочная переменная счетчика обнуляется, но я не знаю, почему и как это предотвратить.
Кстати, я использую ButterKnife, и я также устанавливаю ограничение для экранной страницы моего viewpager на 4.