Подтвердить что ты не робот

Как установить кнопку "Отмена" в диалоговом окне "Прогресс"?

Я хочу установить кнопку отмены в ProgressDialog. Ниже мой код:

myDialog = new ProgressDialog(BaseScreen.this);
myDialog.setMessage("Loading...");
myDialog.setCancelable(false);
myDialog.show();

Я хочу установить кнопку с onClickListener на этом ProgressDialog. Я пробовал с этим кодом:

myDialog.setButton("Cancel", new OnClickListener() {        
    @Override
    public void onClick(DialogInterface dialog, int which) {
        // TODO Auto-generated method stub          
        myDialog.dismiss();
    }
});

Но он не работает. Я тоже пробовал других подобных слушателей, но до сих пор не добился успеха. Как я могу решить эту проблему?

4b9b3361

Ответ 1

Используемый метод setButton устарел (хотя он все равно должен работать). Кроме того, вы можете добавить кнопку до, показывая диалог. Попробуйте:

myDialog = new ProgressDialog(BaseScreen.this);
myDialog.setMessage("Loading...");
myDialog.setCancelable(false);
myDialog.setButton(DialogInterface.BUTTON_NEGATIVE, "Cancel", new DialogInterface.OnClickListener() {
    @Override
    public void onClick(DialogInterface dialog, int which) {
        dialog.dismiss();
    }
});
myDialog.show();

Ответ 2

Убедитесь, что вы вызываете myDialog.setButton перед вызовом myDialog.show();
 Также вы можете использовать myDialog.setButton("Cancel", (DialogInterface.OnClickListener) null);, если вам нужно закрыть диалоговое окно при нажатии кнопки.

Ответ 3

проверьте это

private void createCancelProgressDialog(String title, String message, String buttonText)
{
    cancelDialog = new ProgressDialog(this);
    cancelDialog.setTitle(title);
    cancelDialog.setMessage(message);
    cancelDialog.setButton(buttonText, new DialogInterface.OnClickListener() 
    {
        public void onClick(DialogInterface dialog, int which) 
        {
            // Use either finish() or return() to either close the activity or just the dialog
            return;
        }
    });
    cancelDialog.show();
}

то просто используйте простой метод вызова из другого места в вашей деятельности.

createCancelProgressDialog("Loading", "Please wait while activity is loading", "Cancel");