为了账号安全,请及时绑定邮箱和手机立即绑定

再次点击按钮以确认操作

再次点击按钮以确认操作

阿波罗的战车 2023-05-10 15:03:25
如何制作一个按钮,当按下该按钮时会显示提示消息,要求用户再次点击按钮以确认操作。这是我到目前为止所拥有的,    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();}
查看完整描述

4 回答

?
大话西游666

TA贡献1817条经验 获得超14个赞

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


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 毫秒是两秒,但也许您想要更长的窗口。


查看完整回答
反对 回复 2023-05-10
?
墨色风雨

TA贡献1853条经验 获得超6个赞

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


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


查看完整回答
反对 回复 2023-05-10
?
陪伴而非守候

TA贡献1757条经验 获得超8个赞

使用处理程序来安排设置按钮操作,如下所示:


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);


查看完整回答
反对 回复 2023-05-10
?
不负相思意

TA贡献1777条经验 获得超10个赞

这是它的基本要点。Toast.maketext 采用上下文、字符串和持续时间。


myExitClose.setOnClickListener( (click) ->  {


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

    });

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


查看完整回答
反对 回复 2023-05-10
  • 4 回答
  • 0 关注
  • 171 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信