Завершить деятельность в диалоговом классе

В моем MainActivity Я звоню

 myDialog dialog = new myDialog(MainActivity.this);
 dialog.show();

myDialog мой собственный класс, где я настраиваю диалог. В диалоге есть кнопка. Я хочу, чтобы MainActivity и диалог завершается / исчезает при нажатии кнопки, потому что тогда я запускаю другое действие. Как я могу сказать в myDialog класс, в onClickListenerчто MainActivity должен finish()?

Сокращенный код моего диалога:

public class myDialog extends Dialog implements OnClickListener {

    void onClick() {
        Intent menu = new Intent(getContext(), menu.class);
        getContext().startActivity(menu);
    }
}

2 ответа

Решение

Вы можете закончить свою деятельность, как показано ниже...

Intent intent = new Intent(context, YourSecondActivity.class);
context.startActivity(intent);
((Activity) context).finish();

Обновить:

В вашем конструкторе пользовательского диалогового класса получите контекст действия, как показано ниже...

Context mContext;

public myDialog(Context context) {
    super(context);
    this.mContext = context;
}

тогда в вашем onClick() метод завершить деятельность, как показано ниже...

@Override
public void onClick(View v) {

    Intent menu = new Intent(mContext, menu.class);
    mContext.startActivity(menu);
    ((Activity) mContext).finish();
}

Во-первых, в вашем диалоговом классе передайте контекст действий вызывающей стороны, скажем, контекст MainActivit.class

Теперь сначала закройте диалог

//so as to avoid the window leaks as on destroying the activity it's context would also get vanished.
    dialog.dismiss();

а потом

((Activity) context).finish();
Другие вопросы по тегам