如果没有按下会做其他事情,你如何制作一个警报对话框[重复]

Posted

技术标签:

【中文标题】如果没有按下会做其他事情,你如何制作一个警报对话框[重复]【英文标题】:how do you make an alert dialog if not presses will do something else [duplicate] 【发布时间】:2021-04-23 18:17:28 【问题描述】:

我想制作一个程序,如果按下它会显示一个带有确认按钮的警报对话框,如果它按下它将继续,如果 30 秒内没有按下它将执行其他操作。到目前为止,我已经掌握了制作警报对话框的要点,但后来如果没有按下,我仍在处理它

【问题讨论】:

您可以在打开警报对话框时使用处理程序来运行您的时间,如果使用单击它只是取消处理程序,或者如果用户没有单击它而不是在处理程序完成后执行您想要的操作跨度> 我确实考虑过使用处理程序,但到目前为止我还没有得到它的示例 ***.com/questions/3072173/… 这能回答你的问题吗? How to call a method after a delay in android 嗯,你给我的链接被用于我的另一个项目,但这个有点不同 【参考方案1】:
public void showAlertDialogWithAutoDismiss() 
    AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
    builder.setTitle("Title")
        .setMessage("message")
        .setCancelable(false)
        .setPositiveButton("SKIP", new DialogInterface.OnClickListener() 
            public void onClick(DialogInterface dialog, int id) 
                //this for skip dialog
            dialog.cancel();
            
    );
    final AlertDialog alertDialog = builder.create();
    alertDialog.show();
    new Handler().postDelayed(new Runnable() 
      @Override
      public void run() 
          if (alertDialog.isShowing())
              alertDialog.dismiss();
          
      
    , 5000); //change 5000 with a specific time you want

【讨论】:

好的,谢谢,它确实适用于我正在做的事情,非常感谢【参考方案2】:
import android.os.Handler

class DelayHandler 
var handler: Handler? = null
var runable: Runnable? = null

init 
    handler = Handler()



fun startDealay(sec: Long, listner: () -> Unit) 

    runable = Runnable  listner.invoke() 
    handler?.postDelayed(runable!!, sec)


fun cancelHandler() 
    if (handler != null) 
        runable?.let  handler?.removeCallbacks(it) 
    


在你想要一个处理程序的地方调用它之后

  private val delayHandler: DelayHandler? = DelayHandler()

     delayHandler?.cancelHandler() // call this for cancel the handler on button click
            
     delayHandler?.startDealay(30 * 1000)  // 30 *1000 for 30 sec
                // your action
            

【讨论】:

OP 有 java 标签,你所有的代码都是 kotlin,可惜没用

以上是关于如果没有按下会做其他事情,你如何制作一个警报对话框[重复]的主要内容,如果未能解决你的问题,请参考以下文章

按下标签栏项目时如何显示警报视图以及在其他目标中使用时如何忽略它?

如果符合条件,PopUp会做一些事情

按下按钮时停止动画

如何在 swift ui 中显示两个警报,一个接着一个

推送到达时显示警报

如何在 SwiftUI 中一个接一个地显示多个警报对话框?