Как вызвать методы переопределения после нажатия кнопки? - PullRequest
0 голосов
/ 18 февраля 2019

Я хочу переопределить onBackPressed(), но после события onClick.

@Override
public void onBackPressed() {
    //Toast Please wait for process
}

Это мой метод onClick: я хочу переопределить onBackPressed(), только если этот метод выполняется.

private void fetchData() {
    showLoader();
}

Ответы [ 4 ]

0 голосов
/ 18 февраля 2019

Вы должны кодировать как показано ниже:

private boolean isDataCalled = true; // global variable

Затем

private void fetchData() {
    isDataCalled = false;
    showLoader();
}

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

isDataCalled = true;

В васМетод onBackPress:

 @Override
public void onBackPressed() {
    if (isDataCalled) {
        super.onBackPressed(); // back press when no data fething.
    } else {
        //Toast Please wait for process
    }
}
0 голосов
/ 18 февраля 2019

Вы можете использовать приведенный ниже фрагмент.

   boolean flag=false;
    ...

    private void fetchData() {
       showLoader();
       flag=true;
    } 
    ...

   @Override
   public void onBackPressed() {
      if(flag){
          //Toast Please wait for process
      }else{
           super.onBackPressed();
       }
   }

Как только ваш процесс завершится, сделайте flag = false;поэтому он будет иметь нормальное поведение.

0 голосов
/ 18 февраля 2019
This is the code snippet that you can use :

    boolean isClicked=false;
     void buttonClick(){
     isclicked=true
    //you rest of the code 
    }
   @override
   void onBackpressed(){
   if(isclicked){
  //your click logic 
   }else{
  super.onBackPressed();
   }
}

, таким образом, вы можете просто использовать метод как два разных метода, используя этот флаг

0 голосов
/ 18 февраля 2019

Вы можете сохранить логическую переменную и обновить ее значение до true, когда ваш метод fetchData завершит выполнение, а в вашем методе onBackPressed() вы можете проверить значение этой логической переменной и выполнить свой код соответственно

...