Można użyć DialogFragment zamiast Dialog. Ponieważ Okno dialogowe jest wtórne do jego aktywności.Po uruchomieniu działalności z startActivityForResult(), Twój dialogowe zostanie odwołany
Innym przykładem Użyj oddzwaniania
Tworzenie interfejsu
public interface DialogCallback {
void getResults(String results);
}
Tworzenie DialogFragment
public class DialogFragment extends DialogFragment {
DialogCallback dialogCallback;
public DialogFragment setCallBack(DialogCallback dialogCallback){
this.dialogCallback = dialogCallback;
return this;
}
@NonNull
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
return super.onCreateDialog(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.your_layout, container, false);
return view;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public void onDismiss(DialogInterface dialog) {
super.onDismiss(dialog);
dialogCallback.getResults("hello");
}
}
W swojej działalności
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
new DialogFragment().setCallBack(dialogCallback).show(getFragmentManager(),"");
}
DialogCallback dialogCallback = new DialogCallback() {
@Override
public void getResults(String results) {
if(results!=null){
Log.e(TAG,results);
}
}
};
Wyjście
Kiedy odrzucenie DialogFragment będzie zobaczyć "Hello" Zaloguj się swoim Aktywny
Proszę podać kod tworzenia i uruchamiania okna dialogowego. – Jin35
@ tony-p-lee dowolne rozwiązanie –