Как создать модальное диалоговое окно в android
Я хочу создать модальное диалоговое окно для моего приложения.
поэтому, когда модальное диалоговое окно открывает другие действия, блокируется. никакие события не выполняются, например, при нажатии кнопки "Назад" или "домашняя кнопка".
и положите две кнопки в этом диалоговом окне отменить и ok.
Спасибо...
Ответы
Ответ 1
В 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();
}
Ответ 2
Использование может использовать
setCancellable (ложь);
setCanceledOnTouchOutside (ложь);
для самого диалога, который должен остановить этот диалог от закрытия с помощью BACK и нажатием вне диалогового окна.
Вы не можете переопределить кнопку HOME.
Ответ 3
Попробуйте следующее:
Вам нужно создать макет, который вы хотите отобразить во всплывающем окне. вы можете создать макет 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);
Ответ 4
Попробуйте выполнить следующие действия:
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:
Нет, невозможно получить событие Home key в android.
Из документации основного кода клавиатуры:
http://developer.android.com/reference/android/view/KeyEvent.html#KEYCODE_HOME
public static final int KEYCODE_HOME
Key code константа: главный ключ. Эта ключ обрабатывается каркасом, а никогда не доставляется приложения.