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