Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/316.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_Onclicklistener_Android Button - Fatal编程技术网

Java 再次点击按钮以确认操作

Java 再次点击按钮以确认操作,java,android,onclicklistener,android-button,Java,Android,Onclicklistener,Android Button,如何制作一个按钮,当按下该按钮时,会显示一条toast消息,要求用户再次点击按钮以确认操作。这是我到目前为止得到的 Button myExitClose = alertLayout.findViewById(R.id.homeExitClose); ImageView myExitDismiss = alertLayout.findViewById(R.id.homeExitDismiss); final LinearLayout adContainer = alertL

如何制作一个按钮,当按下该按钮时,会显示一条toast消息,要求用户再次点击按钮以确认操作。这是我到目前为止得到的

    Button myExitClose = alertLayout.findViewById(R.id.homeExitClose);
    ImageView myExitDismiss = alertLayout.findViewById(R.id.homeExitDismiss);
    final LinearLayout adContainer = alertLayout.findViewById(R.id.homeExitAdView);


    myExitClose.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            exitDialog.dismiss();
            finish();
        }
    });

    myExitDismiss.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            exitDialog.dismiss();
        }
    });
    alert.setView(alertLayout);
    alert.setCancelable(false);
    exitDialog = alert.create();
}

使用处理程序计划设置按钮操作,如下所示:

final OnClickListener listener = new OnClickListener(){
        public void onClick(View v) {
            Toast.makeText(YourActivity.this,"press back one more time to exit",Toast.LENGTH_SHORT).show();
            myExitClose.setOnClickListener(new OnClickListener(){
                YourActivity.this.finish();
            });
            new Handler().postDelay(new Runable(){
               myExitClose.setOnClickListener(listener);
            },2000); //wait 2 second for the next pressed
        }
}
myExitClose.setOnClickListener(listener);

这是它的基本要旨。Toast.maketext接受上下文、字符串和持续时间

myExitClose.setOnClickListener( (click) ->  {

        Toast.makeText(getActivity(), "StringRes", Toast.LENGTH_SHORT).show();  
    });

您还可以在显示之前制作一个Toast对象和操纵放置等。

按下按钮时,记录按下按钮的时间戳。如果再次按下按钮,将新的时间戳与旧的时间戳进行比较,如果两次按下的距离足够近,则执行特殊操作

private Long lastPressedTime = null;

您可以将
2000
更改为您想要的任何数字;2000毫秒是2秒,但您可能需要更长的窗口。

如何在定义的时间间隔内按两次后退出应用程序的示例:

private long backPressed;
private static final int TIME_INTERVAL = 2000;

@Override
public void onBackPressed() {
    if( backPressed + TIME_INTERVAL > System.currentTimeMillis() ) {
        finish();
        super.onBackPressed();
        return;
    } else {
        Toast.makeText(this, "Tap again to exit", Toast.LENGTH_SHORT).show();
    }

    backPressed = System.currentTimeMillis();
}

将代码粘贴到
onClick()

的侦听器中,您的代码有什么问题或结果?只需使用按钮创建新窗口并在onClick上打开它?当我再次按下按钮时,接下来会发生什么?问题是如何敬酒。只需实现一个点击计数器即可进行确认。非常随意。谢谢你的见解,你的代码帮助我更好地理解了我的问题。@Imkong Akum Longchar如果我的答案解决了你的问题,请接受,如果没有,请告诉我,我会编辑它。
private long backPressed;
private static final int TIME_INTERVAL = 2000;

@Override
public void onBackPressed() {
    if( backPressed + TIME_INTERVAL > System.currentTimeMillis() ) {
        finish();
        super.onBackPressed();
        return;
    } else {
        Toast.makeText(this, "Tap again to exit", Toast.LENGTH_SHORT).show();
    }

    backPressed = System.currentTimeMillis();
}