Я расширил DialogFragment и вызываю его из фрагмента (используя библиотеки поддержки, например, android.support.v4.app.Fragment)
Фрагмент реализует следующий интерфейс, содержащий метод doPositiveClick().
public interface CustomFieldsFragmentAlertDialog {
public abstract void doPositiveClick();
}
Чтобы показать диалог, я вызываю:
CustomFieldsDialogFragment dialog = CustomFieldsDialogFragment.newInstance();
dialog.show(getFragmentManager(), "fragmentDialog");
Вот мой класс DialogFragment
public static class CustomFieldsDialogFragment extends DialogFragment{
public static CustomFieldsDialogFragment newInstance() {
CustomFieldsDialogFragment frag = new CustomFieldsDialogFragment();
return frag;
}
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
Builder builder = new AlertDialog.Builder(getActivity());
builder.setTitle("Title");
builder.setPositiveButton(posButtonText, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
((CustomFieldsFragmentAlertDialog)getTargetFragment()).doPositiveClick();
}
});
}
return builder.create();
}
}
Приложение аварийно завершает работу с исключением нулевого указателя при попытке выполнить строку ((CustomFieldsFragmentAlertDialog)getTargetFragment()).doPositiveClick();
10-05 13:45:23.550: E/AndroidRuntime(29228): java.lang.NullPointerException 10-05 13:45:23.550: E/AndroidRuntime(29228): в com.company.app.CustomFieldsFragment$CustomFieldsDialogFragment$1.onClick (Кастомфиелдсфрагмент.java:194)
Как я могу вызвать метод doPositiveClick(), существующий во фрагменте, который вызывает CustomFieldsFragmentAlertDialog?
Примечание. На сайте разработчиков Android показан пример http://developer.android.com/reference/android/app/DialogFragment.html#AlertDialog, в котором используется строка ((FragmentAlertDialog)getActivity()).doPositiveClick();, но я звоню из фрагмента, а не из действия.
Спасибо,