-1

我想制作一个程序,如果按下它会显示一个带有确认按钮的警报对话框,如果按下它会继续,如果没有按下 30 秒会做其他事情。到目前为止,我得到了制作警报对话框显示的要点,但后来如果没有按下,我仍在努力

4

2 回答 2

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
}
于 2021-01-19T12:40:56.050 回答
0
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
            }
于 2021-01-19T13:02:59.927 回答