前言
第一次寫(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ě)文章還望大家多多支持!