java用arraycopy實現(xiàn)多擊事件
本文實例為大家分享了java用arraycopy實現(xiàn)多擊事件的3種方法,供大家參考,具體內(nèi)容如下
1、雙擊事件的實現(xiàn)
我們規(guī)定兩次點擊的事件間隔在500毫秒內(nèi)為雙擊事件,這一值可以隨意限定。
bt_click.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if(startTime!=0){
long endTime = System.currentTimeMillis();
if(endTime-startTime<500){
Toast.makeText(getApplicationContext(), "點擊了兩下", 0).show();
}
}
startTime = System.currentTimeMillis();
}
});
2、arraycopy用法
arraycopy是用于數(shù)組復(fù)制的一個函數(shù)
我們先來看一個arraycopy的小例子
//靜態(tài)初始化兩個長度不同的數(shù)組
int src[] = {1,2,3,4,5,6};
int dest[] = {10,9,8,7,6,5,4,3,2,1};
//將數(shù)組src的4個元素copy到數(shù)組dest中
System.arraycopy(src,1,dest,2,4);
//輸出數(shù)組dest
for(int i=0;i<10;i++)
{
System.out.println(dest[i]);
}
輸出結(jié)果

由結(jié)果我們可以看出arraycopy的用法
參數(shù):
1.原數(shù)組(要被拷貝的數(shù)組)
2.原數(shù)組的拷貝起始位置索引值
3.目標(biāo)數(shù)組(原數(shù)組的數(shù)據(jù)—拷貝–>目標(biāo)數(shù)組)
4.目標(biāo)數(shù)組接受值的起始索引位置
5.拷貝的長度
-
3、多擊事件的實現(xiàn)
private long[] mHits = new long[3];
bt_many_click.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
System.arraycopy(mHits, 1, mHits, 0, mHits.length-1);
mHits[mHits.length-1] = SystemClock.uptimeMillis();
if(mHits[mHits.length-1]-mHits[0]<500){
//響應(yīng)了一個三擊事件
Toast.makeText(getApplicationContext(), "點擊了三下!!!!", 0).show();
}
}
});
mHits 長度為3的數(shù)組(即多擊次數(shù)),最后一位 mHits[mHits.length-1] 存儲每次點擊的時間
每點擊一次 arraycopy一次

當(dāng)點擊夠了3次 即mHits[0]有值后判斷 最后一次點擊和第一次點擊的時間間隔,小于我們限定的時間則判定為三擊。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
java學(xué)習(xí)指南之字符串與正則表達(dá)式
在日常Java后端開發(fā)過程中,免不了對數(shù)據(jù)字段的解析,自然就少不了對字符串的操作,這其中就包含了正則表達(dá)式這一塊的內(nèi)容,下面這篇文章主要給大家介紹了關(guān)于java學(xué)習(xí)指南之字符串與正則表達(dá)式的相關(guān)資料,需要的朋友可以參考下2023-05-05
MyBatis深入解讀動態(tài)SQL的實現(xiàn)
動態(tài) SQL 是 MyBatis 的強(qiáng)大特性之一。如果你使用過 JDBC 或其它類似的框架,你應(yīng)該能理解根據(jù)不同條件拼接 SQL 語句有多痛苦,例如拼接時要確保不能忘記添加必要的空格,還要注意去掉列表最后一個列名的逗號。利用動態(tài) SQL,可以徹底擺脫這種痛苦2022-04-04
Spring Boot 深入分析AutoConfigurationImportFilter自動化條件
這篇文章主要分析了Spring Boot AutoConfigurationImportFilter自動化條件配置源碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧2022-07-07
IntelliJ IDEA修改內(nèi)存大小,使得idea運行更流暢
今天小編就為大家分享一篇關(guān)于IntelliJ IDEA修改內(nèi)存大小,使得idea運行更流暢的文章,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2018-10-10

