//定義長整型數組,初始化的值是{0,0}; private long[] mHits = new long[2]; private void doubleClick_2() { /* System.arraycopy(源數組,源數組起始位, 目的數組, 目的數組起始位, 長度 ) {1,2,3,4} 執行下面語句後 {2,3,4,4} */ System.arraycopy(mHits, 1, mHits, 0, mHits.length - 1); // 把數組最後一位賦值,新的時間值 mHits[mHits.length - 1] = SystemClock.uptimeMillis(); //這幾回點擊相差的時間 if (mHits[mHits.length - 1] - mHits[0] < 500) { /**雙擊的業務邏輯*/ } }
自定義一個空數組,每次把數組總體向前移動一位,而後給數組最後一位賦值一個時間數,當 SystemClock.uptimeMillis() 與數組第一位之間的時間差小於 1 秒時,生效。 mHints = new long[5]; public void onDisplaySettingButton(View view) { System.arraycopy(mHints, 1, mHints, 0, mHints.length - 1);// 把從第二位至最後一位之間的數字複製到第一位至倒數第一位 mHints[mHints.length - 1] = SystemClock.uptimeMillis();// 從開機到如今的時間毫秒數 if (SystemClock.uptimeMillis() - mHints[0] <= 1000) {// 連續點擊之間間隔小於一秒,有效 lineimg.setVisibility(View.VISIBLE); layoutLoginSetting.setVisibility(View.VISIBLE); } }
public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length) src: 源數組; srcPos: 源數組要複製的起始位置; dest: 目的數組; destPos: 目的數組放置的起始位置; length: 複製的長度。 注意:src and dest 都必須是同類型或者能夠進行轉換類型的數組.
int[] fun1 = {0,1,2,3,4,5,6}; int[] fun2 = {9,8,7}; System.arraycopy(fun2,0, fun1,0,3); //結果: {9, 8, 7, 3, 4, 5, 6}