NullPointerException EventFragment.java:99

230
04 апреля 2017, 10:10

Помогите разобраться пожалуйста!

Ошибка возникает при взаимодействии следующих двух фрагментов: Во фрагменте EventFragment, (который назначен целевым) есть кнопка, которая должна содержать введенную дату. По событию onClick() создается новый фрагмент DatePickerFragment extends DialogFragment,

mDateButton.setOnClickListener(new View.OnClickListener(){
    public void onClick(View view){
        FragmentManager manager = getActivity().getSupportFragmentManager();
        DatePickerFragment dialog = DatePickerFragment.newInstance(mEvent.getDate());
        dialog.setTargetFragment(EventFragment.this, REQUEST_DATE);
        dialog.show(manager, DIALOG_DATE);
    }
});

Во фрагменте DatePickerFragment внутри DialogAlert'а с одной positive-кнопкой располагается DatePicker.

return new AlertDialog.Builder(getActivity())
        .setView(inflatedView)
        .setTitle(R.string.date_picker_title)
        .setPositiveButton(android.R.string.ok,
                new DialogInterface.OnClickListener(){
                    @Override
                    public void onClick(DialogInterface dialog, int which){
                        int year = mDatePicker.getYear();
                        int month = mDatePicker.getMonth();
                        int day = mDatePicker.getDayOfMonth();
                        Date date = new GregorianCalendar(year,month,day).getTime();
                        sendResult(Activity.RESULT_OK, date);
                    }
                }
        )
        .create();
}

При нажатии на кнопку "ок" вызывается метод sendResult() куда передается Acitivity.RESULT_OK а также новая дата, в самом в методе создается интент и отправляется обратно в первый фрагмент, в метод onActivityResult(...)

private void sendResult (int resultCode, Date date){
    if (getTargetFragment() == null){
        return;
    }
    Intent intent = new Intent();
    intent.putExtra(EXTRA_DATE, date);
    getTargetFragment().onActivityResult(getTargetRequestCode(), resultCode, intent);
}

Но как только процесс выполнения доходит до строки getTargetFragment()... возникает ошибка NullPointerException:

Answer 1

Ваша проблема заключается в строке №99 файла EventFragment.java, а не AlertController.java

Для информации Что такое Null Pointer Exception и как его исправить?

READ ALSO
Выделить айтем в центре в RecyclerView

Выделить айтем в центре в RecyclerView

Рисуется 100 элементов, стоит задача, чтобы элемент находящийся посередине всегда был красный, следовательно если мы чуть-чуть отскролили...

302
Улучшение конструкции if-else при валидации значений

Улучшение конструкции if-else при валидации значений

Думаю, конструкцию if-else можно улучшить, но не могу придумать какЧто можно сделать?

242
Как дать доступ к сайту на java Servlet API с домашнего компьютера?

Как дать доступ к сайту на java Servlet API с домашнего компьютера?

Задача следующая: дать доступ к учебным "pet" проектам с внешней машины наименее трудозатратным способом

218
Прокручивающийся position: sticky?

Прокручивающийся position: sticky?

Есть сайдбар, высота которого превышает высоту экранаКак известно, position: sticky при прокрутке просто закрепляет верх блока вверху страницы...

212