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ù)組復制的一個函數(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]); }
輸出結果
由結果我們可以看出arraycopy的用法
參數(shù):
1.原數(shù)組(要被拷貝的數(shù)組)
2.原數(shù)組的拷貝起始位置索引值
3.目標數(shù)組(原數(shù)組的數(shù)據(jù)—拷貝–>目標數(shù)組)
4.目標數(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){ //響應了一個三擊事件 Toast.makeText(getApplicationContext(), "點擊了三下!!!!", 0).show(); } } });
mHits 長度為3的數(shù)組(即多擊次數(shù)),最后一位 mHits[mHits.length-1] 存儲每次點擊的時間
每點擊一次 arraycopy一次
當點擊夠了3次 即mHits[0]有值后判斷 最后一次點擊和第一次點擊的時間間隔,小于我們限定的時間則判定為三擊。
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
MyBatis深入解讀動態(tài)SQL的實現(xiàn)
動態(tài) SQL 是 MyBatis 的強大特性之一。如果你使用過 JDBC 或其它類似的框架,你應該能理解根據(jù)不同條件拼接 SQL 語句有多痛苦,例如拼接時要確保不能忘記添加必要的空格,還要注意去掉列表最后一個列名的逗號。利用動態(tài) SQL,可以徹底擺脫這種痛苦2022-04-04Spring Boot 深入分析AutoConfigurationImportFilter自動化條件
這篇文章主要分析了Spring Boot AutoConfigurationImportFilter自動化條件配置源碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習吧2022-07-07IntelliJ IDEA修改內(nèi)存大小,使得idea運行更流暢
今天小編就為大家分享一篇關于IntelliJ IDEA修改內(nèi)存大小,使得idea運行更流暢的文章,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2018-10-10