Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何加上「;是”;及;否";自动关闭警报对话框的选项?_Java_Android_Dialog - Fatal编程技术网

Java 如何加上「;是”;及;否";自动关闭警报对话框的选项?

Java 如何加上「;是”;及;否";自动关闭警报对话框的选项?,java,android,dialog,Java,Android,Dialog,我想一切都是第一次。这是我的第一个问题 我正在开发一个汽车应用程序,在这个应用程序中,我需要尽量减少驾驶时的用户交互。应用程序需要不时向用户建议它所做的“决定”。让我们称之为“绿色”。然后,应用程序显示一个警报对话框,告知用户该决定,并允许用户: 等待3秒钟,然后对话框消失,显示“绿色” 强制执行 按对话框上的“红色”按钮,更改此决定 改为“红色” 我正在尝试使用一个警报对话框加上一个计时器: AlertDialog.Builder builder = new AlertDialog.Bui

我想一切都是第一次。这是我的第一个问题

我正在开发一个汽车应用程序,在这个应用程序中,我需要尽量减少驾驶时的用户交互。应用程序需要不时向用户建议它所做的“决定”。让我们称之为“绿色”。然后,应用程序显示一个
警报对话框
,告知用户该决定,并允许用户:

  • 等待3秒钟,然后对话框消失,显示“绿色” 强制执行
  • 按对话框上的“红色”按钮,更改此决定 改为“红色”
我正在尝试使用一个
警报对话框
加上一个
计时器

AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
builder.setTitle("Seems it was GREEN");
builder.setMessage("You can change it to RED by pressing a button");
builder.setCancelable(true);
builder.setPositiveButton("RED!", new DialogInterface.OnCLickListener() {
    public void onClick(DialogInterface dialog, int whichButton) [
        // 1. Do things required by RED option
    }
} 

final AlertDialog dlg = builder.create();

dlg.show();

final Timer t = new Timer();
t.schedule(new TimerTask() {
    public void run() {
        // 2. Do things required by GREEN option
        dlg.dismiss(); 
        t.cancel();
    }
}, 3000);
问题是,在1,2之后。始终执行,因此如果用户试图通过按下“红色”按钮“取消”绿色,则“绿色”选项仍在“红色”选项之后运行

如果应用程序通过对话框通知一个决定,我怎么能让它成为独占的,那么当应用程序等待几秒钟,如果用户没有选择另一个,那么就强制执行这个决定?

取消计时器-

builder.setPositiveButton("RED!", new DialogInterface.OnCLickListener() 
{
    public void onClick(DialogInterface dialog, int whichButton) 
    {
        if(t != null)
        {
            t.cancel();
        }
    }
} 

在我的示例代码?t.cancel()中,当您单击按钮care来告诉如何准确地执行此操作时,需要取消计时器;取消计时器。您需要在单击红色按钮时执行此操作。