Как создать модальное диалоговое окно в android - программирование
Подтвердить что ты не робот

Как создать модальное диалоговое окно в android

Я хочу создать модальное диалоговое окно для моего приложения.

поэтому, когда модальное диалоговое окно открывает другие действия, блокируется. никакие события не выполняются, например, при нажатии кнопки "Назад" или "домашняя кнопка".

и положите две кнопки в этом диалоговом окне отменить и ok.

Спасибо...

4b9b3361

Ответ 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 константа: главный ключ. Эта ключ обрабатывается каркасом, а никогда не доставляется приложения.