私の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);
}
}
_
以下のようにアクティビティを終了できます...
_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 context
まず、ダイアログを閉じます
//so as to avoid the window leaks as on destroying the activity it's context would also get vanished.
dialog.dismiss();
その後
((Activity) context).finish();