按下按钮后如何触发覆盖方法?

时间:2019-02-18 11:48:38

标签: java android android-activity override

我想覆盖onBackPressed(),但是在onClick事件之后。

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

这是我的onClick方法:仅在执行此方法时,我才想覆盖onBackPressed()

private void fetchData() {
    showLoader();
}

4 个答案:

答案 0 :(得分:1)

当您的fetchData方法执行完毕时,您可以保留一个布尔变量并将其值更新为true,而在您的entityManager.clear();方法中,您可以检查该布尔变量的值并执行代码相应地

答案 1 :(得分:1)

您可以使用以下代码段。

   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;因此它将具有正常的行为。

答案 2 :(得分:0)

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();
   }
}

因此,通过使用该标志,您可以简单地将on方法用作两种不同的方法

答案 3 :(得分:0)

您必须编写如下代码:

private boolean isDataCalled = true; // global variable

然后

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

当数据完全加载后,使此变量为true。

isDataCalled = true;

在您的onBackPress方法中:

 @Override
public void onBackPressed() {
    if (isDataCalled) {
        super.onBackPressed(); // back press when no data fething.
    } else {
        //Toast Please wait for process
    }
}