Android 屢次點擊的實現

//定義長整型數組,初始化的值是{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}
相關文章
相關標籤/搜索