Я пытаюсь передать информацию из моего AlertDialog в родительский фрагмент, в котором он находится.Но как только вы нажмете на кнопку «позитив», приложение вылетит.Я действительно не знаю, что делать, уже прочитал много постов и статей, но не смог найти проблему.Было бы здорово, если бы вы могли мне помочь. (Я новичок)
Вот ошибка, которую я получаю с первой проблемой в коде и второй с комментариями.
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.test, PID: 20682
java.lang.NullPointerException: Attempt to invoke interface method 'void com.example.test.SchulfachDialog$SchulfachDialogListener.applyTexts(java.lang.String)' on a null object reference
at com.example.test.SchulfachDialog$1.onClick(SchulfachDialog.java:39)
at android.support.v7.app.AlertController$ButtonHandler.handleMessage(AlertController.java:167)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5525)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:730)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:620)
вот мой код для оповещения Диалог:
builder.setView(view)
.setTitle("Add new subject")
.setMessage("Message")
.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
})
.setPositiveButton("ok", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
String name = editTextName.getText().toString();
listener.applyTexts(name); // Problem 1: when positiv Button is pushed this line causes a crash
}
});
editTextName = view.findViewById(R.id.edit_name);
return builder.create();
}
это тот текст apply, который я переопределяю во фрагментах Код:
public interface SchulfachDialogListener{
void applyTexts(String name);
}
}
@Override public void applyTexts(String name) {
test = name;
}
}
Я такжеиметь этот блок, в котором 2 прокомментированные строки вызывают сбой при нажатии на кнопку, которая запускает диалоговое окно предупреждения:
public void onAttach(Context context) {
super.onAttach(context);
try {
listener = (SchulfachDialogListener) context;
} catch (ClassCastException e) {
// throw new ClassCastException(context.toString()+
// "must implement SchulfachDialogListener");
}
}