Завершить работу в диалоговом классе
В моем 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);
}
}
Ответы
Ответ 1
Вы можете закончить свою деятельность, как показано ниже...
Intent intent = new Intent(context, YourSecondActivity.class);
context.startActivity(intent);
((Activity) context).finish();
Update:
В вашем конструкторе вашего пользовательского диалогового класса получите контекст активности ниже...
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();
}
Ответ 2
Во-первых, в вашем классе диалога передайте контекст активности вызывающего объекта, скажем, MainActivit.class контекст
Теперь закройте диалоговое окно
//so as to avoid the window leaks as on destroying the activity it context would also get vanished.
dialog.dismiss();
а затем
((Activity) context).finish();