В этом коде я хочу, чтобы пользователь вводил дату для доступа к Firestore и удаления, но когда в строке showMessageInput () не открывает ее и не переходит на следующую строку, поэтому datePass имеет значение null и приложение sh.
DatePass является глобальной переменной
Кнопка удаления
public void Delete(){
btDelete.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
showMessageInput(); // this doesn't open
db.document(datePass) // error here because datePass is null
(...)
}
showMessage
public void showMessageInput(){
Message message = new Message();
message.show(getSupportFragmentManager(), "Message");
}
@Override
public void Date(String date) {
datePass = date;
}
Класс Сообщение
public class Message extends AppCompatDialogFragment {
private EditText editDate;
private DialogListener listener;
@NonNull
@Override
public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) {
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
LayoutInflater inflater = getActivity().getLayoutInflater();
View view = inflater.inflate(R.layout.layout_message, null);
(...)
.setPositiveButton("Submit", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
String date = editDate.getText().toString();
listener.Date(date);
}
});
editDate = view.findViewById(R.id.editDate);
return builder.create();
}
@Override
public void onAttach(@NonNull Context context) {
super.onAttach(context);
try {
listener = (DialogListener) context;
} catch (ClassCastException e) {
throw new ClassCastException(context.toString() + " must implement DialogListener.");
}
}
public interface DialogListener{
void Date(String date);
}
}