再次点击按钮以确认操作
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()
.
的侦听器
如何制作一个按钮,当按下该按钮时会显示提示消息,要求用户再次点击按钮以确认操作。这是我目前所拥有的,
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()
.