安卓隱藏入口的實(shí)現(xiàn)(幾次點(diǎn)擊之后進(jìn)入隱藏頁(yè))

前言

第一次寫(xiě)文章,先寫(xiě)一些簡(jiǎn)單的功能,大家在開(kāi)發(fā)過(guò)程中應(yīng)該有很多app中會(huì)有隱藏入口,主要是為了使用測(cè)試帳號(hào)對(duì)功能進(jìn)行測(cè)試,下面進(jìn)入正文。

正文

慣例,先亮出效果圖(這里的隱藏入口是隨意寫(xiě)的一個(gè)demo,真正的隱藏入口肯定是不會(huì)就這么亮出來(lái)的)。


image

大家看到了,只有當(dāng)連續(xù)點(diǎn)擊五次的時(shí)候才會(huì)彈出提示,當(dāng)你點(diǎn)擊兩次之后延時(shí)兩秒鐘再次點(diǎn)擊的話,還是需要再次點(diǎn)擊五次才能彈出提示。
因?yàn)樾枰c(diǎn)擊次數(shù)五次,所以我們肯定需要一個(gè)變量用來(lái)存貯點(diǎn)擊次數(shù)

private int mClickNum;//點(diǎn)擊次數(shù)

這里我們使用System.currentTimeMillis();進(jìn)行獲取當(dāng)前時(shí)間。
首先屢清整個(gè)五次點(diǎn)擊的邏輯

  • 第一次點(diǎn)擊的時(shí)候只進(jìn)行保存當(dāng)前時(shí)間
    private long mTempTime;//臨時(shí)時(shí)間
    private int mClickNum;//點(diǎn)擊次數(shù)
    //五次點(diǎn)擊之后進(jìn)入隱藏入口
    public void onClick(View view) {//點(diǎn)擊隱藏入口
        long time = System.currentTimeMillis();
        if (mTempTime == 0) {//第一次點(diǎn)擊隱藏入口,保存臨時(shí)時(shí)間
            mTempTime = time;//
        } else {
              //這里走第二次點(diǎn)擊
        }
    }
  • 第二次一直到第五次點(diǎn)擊,這里首先判斷一下超時(shí)時(shí)間,并且記錄點(diǎn)擊次數(shù)mClickNum++
    private long mTempTime;//臨時(shí)時(shí)間
    private int mClickNum;//點(diǎn)擊次數(shù)
//五次點(diǎn)擊之后進(jìn)入隱藏入口
    public void onClick(View view) {//點(diǎn)擊隱藏入口
        long time = System.currentTimeMillis();
        if (mTempTime == 0) {//第一次點(diǎn)擊隱藏入口,保存臨時(shí)時(shí)間
            mTempTime = time;//
        } else {
            if (time - mTempTime > 2000) {//這里設(shè)置兩秒的超時(shí)時(shí)間,如果超過(guò)兩秒,重置狀態(tài)
                mTempTime = time;//給臨時(shí)時(shí)間和點(diǎn)擊次數(shù)進(jìn)行初始化
                mClickNum = 0;
                return;
            }
            mClickNum++;//在每一次點(diǎn)擊的時(shí)候就++,記錄點(diǎn)擊的次數(shù)
            mTempTime = time;//把每一次的當(dāng)前時(shí)間對(duì)臨時(shí)時(shí)間進(jìn)行賦值
        }
    }
  • 最后一步就是判斷點(diǎn)擊次數(shù)了,只要判斷次數(shù)是不是點(diǎn)擊超過(guò)五次就可以了
if (mClickNum == 4) {//因?yàn)橐淮吸c(diǎn)擊走if語(yǔ)句
     Toast.makeText(this, "連續(xù)點(diǎn)擊五次", Toast.LENGTH_SHORT).show();
     mTempTime = 0;//給臨時(shí)時(shí)間和點(diǎn)擊次數(shù)進(jìn)行初始化
     mClickNum = 0;
}

這里因?yàn)榇螖?shù)是從0開(kāi)始的,所以判斷是不是等于四就可以了,當(dāng)然,在點(diǎn)擊完之后,不要忘了把狀態(tài)給初始化。
下面貼出全部代碼

private long mTempTime;//臨時(shí)時(shí)間
    private int mClickNum;//點(diǎn)擊次數(shù)
    //五次點(diǎn)擊之后進(jìn)入隱藏入口
    public void onClick(View view) {//點(diǎn)擊隱藏入口
        long time = System.currentTimeMillis();
        if (mTempTime == 0) {//第一次點(diǎn)擊隱藏入口,保存臨時(shí)時(shí)間
            mTempTime = time;//
        } else {
            if (time - mTempTime > 2000) {//這里設(shè)置兩秒的超時(shí)時(shí)間,如果超過(guò)兩秒,重置狀態(tài)
                mTempTime = time;//給臨時(shí)時(shí)間和點(diǎn)擊次數(shù)進(jìn)行初始化
                mClickNum = 0;
                return;
            }
            mClickNum++;
            mTempTime = time;
            if (mClickNum == 4) {//因?yàn)橐淮吸c(diǎn)擊走if語(yǔ)句
                Toast.makeText(this, "連續(xù)點(diǎn)擊五次", Toast.LENGTH_SHORT).show();
                mTempTime = 0;//給臨時(shí)時(shí)間和點(diǎn)擊次數(shù)進(jìn)行初始化
                mClickNum = 0;
            }
        }
    }

文章到這里就完了,第一次寫(xiě)文章還望大家多多支持!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 178,725評(píng)論 25 709
  • 我一向是喜歡并且期待過(guò)年的。 小時(shí)候?qū)τ谶^(guò)年的印象就是一種模糊的心情,說(shuō)不出具體有什么開(kāi)心的事,但就是從頭到腳的每...
    清眠閱讀 550評(píng)論 2 2

友情鏈接更多精彩內(nèi)容