煤矸石空心砖

新闻分类

联系我们Contact

企业名称:桐城市南口新型建材有限公司

联系人:崔经理

电话:0556-6568069

手机:18156911555

邮箱:303927413@qq.com

地址:桐城市龙腾街道高桥村

网址:   www.nkxxjc.com 



您的当前位置: 首 页 > android studio 中文社区 > Android 记录控件连续点击次数

Android 记录控件连续点击次数

发布日期:2023-02-06 14:46 作者: 点击:

    对于单击和连击 ,最基本的区别就是“单击是每次点击的时间间隔超过连击的有效范围,而连击是每次点击的时间间隔都在连击的有效范围内”。(PS:个人观点,有不妥的欢迎指正)

    所以要想判断是否是连击,就得定义一个连击的有效范围 interval(一个长整型变量)

private long interval = 500;

    在每次点击的时候判断与上一次点击的时间间隔是否符合 interval(即时间间隔小于或等于interval),不符合的,可能是连击的开始,也可能仅仅是单击,所以我们的连击计数器 count (一个整型变量)的值是 1,如果符合的话,就累加 count

@Override public void onClick(View v) { long secondTime = System.currentTimeMillis(); // 判断每次点击的事件间隔是否符合连击的有效范围 // 不符合时,有可能是连击的开始,否则就仅仅是单击 if (secondTime - firstTime 1) { tvCount.setText("连续点击事件,共点击了 " + count + " 次"); } delayTimer.cancel(); count = 0; super.handleMessage(msg); } };

因为在这里讲的是一个记录连击次数的,所以就只显示是单击还是连击及连击次数。

完整的类代码如下:

package com.example.multiclick; import java.util.Timer; import java.util.TimerTask; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.app.Activity; import android.view.View; import android.view.View.OnClickListener; import android.widget.*; public class MainActivity extends Activity implements OnClickListener { private Button btClick = null; private TextView tvCount = null; private int count = 0; private long firstTime = 0; private Timer delayTimer; private Handler handler; private TimerTask task; private long interval = 500; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); btClick = (Button) findViewById(R.id.btClick); btClick.setOnClickListener(this); tvCount = (TextView) findViewById(R.id.tvCount); // 点击事件结束后的事件处理 handler = new Handler() { @Override public void handleMessage(Message msg) { if (count == 1) { tvCount.setText("单击事件"); } else if (count > 1) { tvCount.setText("连续点击事件,共点击了 " + count + " 次"); } delayTimer.cancel(); count = 0; super.handleMessage(msg); } }; } @Override public void onClick(View v) { long secondTime = System.currentTimeMillis(); // 判断每次点击的事件间隔是否符合连击的有效范围 // 不符合时,有可能是连击的开始,否则就仅仅是单击 if (secondTime - firstTime

本文网址:

关键词:android studio 中文社区

相关新闻: