アプリケーション用のモーダルダイアログボックスを作成したい。
モーダルダイアログボックスを開くと、他のアクティビティはブロックされます。戻るボタンを押す、ホームボタンを押すなどのイベントは行われません。
そのダイアログボックスに2つのオプションボタンをキャンセルしてOKをクリックします。
ありがとうございました...
Androidには多くの種類のDialogs
があります。 Dialogs をご覧ください。あなたが探しているのはAlertDialog
のようなものだと思います。これは、BackPress
ボタンに実装する方法の例です。
@Override
public void onBackPressed() {
AlertDialog.Builder alert = new AlertDialog.Builder(this);
alert.setTitle("Do you want to logout?");
// alert.setMessage("Message");
alert.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
//Your action here
}
});
alert.setNegativeButton("Cancel",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
}
});
alert.show();
}
SetCancellable(false)を使用できます。 setCanceledOnTouchOutside(false);ダイアログ自体については、BACKによってダイアログの外側をタップすることにより、ダイアログが閉じるのを停止する必要があります。
[ホーム]ボタンをオーバーライドすることはできません。
これを試して::
ポップアップに表示するレイアウトを作成する必要があります。レイアウトXMLを作成し、次のように使用できます。
LayoutInflater layoutInflater = (LayoutInflater)getBaseContext().getSystemService(LAYOUT_INFLATER_SERVICE);
View layout = layoutInflater.inflate(R.layout.new_popup_layout, null);
final PopupWindow popupWindow = new PopupWindow(
layout,
LayoutParams.WRAP_CONTENT,
LayoutParams.WRAP_CONTENT);
次のようなボタンのクリックイベントを提供することもできます。
ImageButton btnChoose = (ImageButton) layout.findViewById(R.id.btnChoose);
btnChoose.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
}
});
このポップアップを次のように表示します。ここでは、ボタンクリックでこれを表示したい場合、ボタンビューが表示されます。
popupWindow.showAtLocation(anyview,Gravity.CENTER, 0, 0);
以下のように試してください:
AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setMessage("Are you sure you want to exit?") .setCancelable(false) .setPositiveButton(Android.R.string.yes, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { MyActivity.this.finish(); } }) .setNegativeButton(Android.R.string.no, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { dialog.cancel(); } }); AlertDialog alert = builder.create();
Home Keyイベントの場合:
いいえ、Androidでホームキーイベントを取得することはできません。ホームキーコードのドキュメントから: http://developer.Android.com/reference/Android/view/KeyEvent.html#KEYCODE_HOME
public static final int KEYCODE_HOME
キーコード定数:ホームキー。このキーはフレームワークによって処理され、はアプリケーションに配信されません。