2016-12-23 2 views
-2

Я застрял в странные проблемы, у меня есть ProgressDialog и когда это показать с dialog.setCancelable(false); я не могу вызвать onBackPressed или onKeyDown. У меня такой сценарий, когда прогресс показывается, но когда нажимаешь на кнопку «Назад», чтобы запустить какой-то код. Любая помощь приветствуется!Не удается запустить `` onBackPressed` и onKeyDown` когда ProgressDialog бар показывает

+0

любые комментарии, почему нисходящие голоса? – Choletski

+0

Возможно, вы должны добавить код, чтобы показать, что вы уже пробовали. Обычно это не приводит к понижению голосов. –

+0

@RaymonddelaCroix код тривиальный, я объяснил, что упоминается наиболее важный используемый код ... – Choletski

ответ

0

Если вы хотите ваш диалог, чтобы не быть аннулирован только с штрихами использовать dialog.setCanceledOnTouchOutside(false); вместо dialog.setCancelable(false);

тогда Вы должны быть в состоянии по-прежнему использовать BackButton. Обратите внимание, что вам необходимо переопределить OnBackPressed, чтобы предотвратить поведение по умолчанию закрытия диалогового окна.

+0

thx для ответа, но это не соответствует моей утилите, ProgressDialog все равно показывается, но мне нужно вызвать на кнопку возврата ... – Choletski

+0

Вот почему я упомянул, что вам нужно будет подавить по умолчанию. Это не будет работать иначе. –

+0

YEah, вы, вероятно, имели в виду 'setOnCancelListener()' – Choletski

1

Как Android диалогового класс BackPress метода показа

public void onBackPressed() { 
     if (mCancelable) { 
      // cancle and it will return 
     } 
} 

Так что не будет делать какие-либо вещей на onBackPress() или ключевом событии, если setCanclable установлен верно

вам просто нужно создать диалоговый класс, который расширить диалог и просто нужно переопределить этот метод onBackPress() и KeyEvent как

public class MyDialog extends Dialog { 

    public MyDialog(Context context, myOnClickListener myclick) { 
     super(context); 
     this.myListener = myclick; 
    } 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     requestWindowFeature(Window.FEATURE_NO_TITLE); 
     setContentView(R.layout.alert); 
    } 
    @Override 
    public void onBackPressed() 
    { 

    // do thing which you want to do on back press 
    } 
    // same for key 
} 

Надежда Это помощь

Смежные вопросы