我想为我的应用程序创建模态对话框。
所以当模态对话框打开时,其他活动被阻止。没有像按下后退按钮或按下主页那样的事件。
并在该对话框中放置两个选项按钮取消并确定。
谢谢...
答案 0 :(得分:28)
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();
}
答案 1 :(得分:9)
使用可以使用 setCancellable(假); setCanceledOnTouchOutside(假); 对于对话框本身,应该停止该对话框从BACK关闭并通过点击对话框外部。
您无法覆盖HOME按钮。
答案 2 :(得分:6)
试试这个::
您需要创建要在弹出窗口中显示的布局。你可以创建布局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);
答案 3 :(得分:5)
试试如下:
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中无法获取Home键事件。 从Home键代码的文档: http://developer.android.com/reference/android/view/KeyEvent.html#KEYCODE_HOME
public static final int KEYCODE_HOME
密钥代码常量:Home键。这个 key由框架处理,永远不会传递给 应用强>