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

问题描述 投票:0回答:4

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

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

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

private void fetchData() {
    showLoader();
}
java android android-activity override
4个回答
1
投票

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


1
投票

您可以使用以下代码段。

   boolean flag=false;
    ...

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

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

一旦你的过程完成,make flag = false;所以它会有正常的行为。


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方法用作两种不同的方法


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
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.