Когда вы показываете диалог в Деятельности A, вы устанавливаете ссылку на Деятельность A в качестве параметра: alert.showDialog(this);
Затем внутри CustomDialog вы сохраняете эту ссылку как переменную операции:
public void showDialog(Activity activity) {
this.activity = activity;
...}
Это означает, что this.activity
является экземпляром Действия A. Позже в вашей galleryIntent () вы запускаете действие для результата, подобного следующему:
private void galleryIntent() {
...
activity.startActivityForResult(Intent.createChooser(intent, "Select File"), 1);
}
Это означает, что будет вызываться onActivityResult.в действии А, а не в пользовательском диалоговом окне, поскольку вы использовали переменную activity
.
У вас есть 2 варианта исправления:
1) заменить activity.startActivityForResult
на CustomDialog.this.startActivityForResult
2) переместите ваш код onActivityResult
из CustomDialog в действие A