Ich arbeite an einer App und verwende ein benutzerdefiniertes Dialogfeld, das DialogFragment erweitert. Dieser Dialog enthält bestimmte Felder, die ich an die übergeordnete Aktivität übergeben möchte. Ich habe versucht, OnDismissListener zu implementieren, aber der Parameter ist eine Dialogschnittstelle.Abrufen von Informationen aus DialogFragment mit onDismiss()
Irgendeine Idee?
Mutter Aktivität:
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
BreakCreator mDialog = new BreakCreator();
mDialog.show(getSupportFragmentManager(), "start break Creator");
}
});
Zuhörer:
@Override
public void onDismiss(DialogInterface dialog) {
Log.d("debug", "in onDismiss");
BreakCreator mBreakCreator = BreakCreator.class.cast(dialog);// This MIGHT not work
//TODO cast and shit
if(!mBreakCreator.isCancelled()){
int startMinute = mBreakCreator.getStartMinute();
int startHour = mBreakCreator.getStartHour();
int endMinute = mBreakCreator.getEndMinute();
int endHour = mBreakCreator.getEndHour();
String day = mBreakCreator.getDay();
Break mBreak = new Break(new ultramirinc.champs_mood.Time(startHour, startMinute),
new ultramirinc.champs_mood.Time(endHour, endMinute), day);
breakList.add(mBreak);
Log.d("created", "break added");
recyclerView.invalidate();
}else{
Log.d("debug", "is not cancelled");
}
}
Dialog Klasse:
public void onDismiss(final DialogInterface dialog) {
super.onDismiss(dialog);
final Activity activity = getActivity();
if (activity instanceof DialogInterface.OnDismissListener) {
((DialogInterface.OnDismissListener) activity).onDismiss(dialog);
}
}
Ich habe keine Ahnung, wie die Informationen zu bekommen, da ich nicht DialogInterface in DialogFragment –
Read [diese] (https://en.wikipedia.org/wiki/Observer_pattern) abgeben kann, [diese] (https://docs.oracle.com/javase/tutorial/uiswing/events/) und [dies] (https://www.google.se/url?sa=t&rct=j&q=&esrc=s&source=web&cd=15&cad=rja&uact=8&ved = 0ahUKEwiA7uXDoaLTAhWDjiwKHVnYBRAQFghxMA4 & url = http% 3A% 2F% 2Fwww.vogella.com% 2Ftutorials% 2FDesignPatternObserver% 2Farticle.html & usg = AFQjCNGGgYexZpJrbf-LiedTH0yRc675rQ & sig2 = OUgdD_VLKZWmUpfUsS_sLA) – rckrd
bekomme ich die Idee, einen Zuhörer zu einem Objekt hinzuzufügen, noch meine Gewohnheit DialogFragment scheint nicht eine Methode haben: setOnDismissListener –