再次点击按钮以确认操作

Tap button again to confirm action

如何制作一个按钮,当按下该按钮时会显示提示消息,要求用户再次点击按钮以确认操作。这是我目前所拥有的,

    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;
button.setOnClickListener(v -> {
    long currentTime = System.currentTimeMillis();

    if (lastPressedTime == null || (currentTime - lastPressedTime) > 2000) {
        Toast.makeText(v.getContext(), "Tap again to exit", Toast.LENGTH_SHORT).show();
        lastPressedTime = currentTime;
    } else {
        finish();
    }
});

你可以把2000改成你想要的任何数字; 2000 毫秒是两秒,但也许您想要更长的时间 window.

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

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().

的侦听器