我正在尝试实现一些隐藏菜单。就像 Android 操作系统中的开发者选项一样,您按 10 次就会打开一个 secret 菜单。
我的任务是创建一个 onbutton 单击监听器来触发某种计时器事件。我必须点击该按钮 10 次, secret 菜单才会出现。更重要的是,它应该有 8 秒重置计时器,如果用户在 8 秒内没有按下按钮,则会重置点击次数。我知道它应该在工作线程上完成,但我在寻找此类工作的最佳实践和类时遇到问题。
最佳答案
你可以试试这个,
public class MainActivity extends AppCompatActivity {
private int clickCount = 0;
private int maxClick = 10;
private Toast mToast;
private long clickDelayTime = 500; // milli second (if you want to set 8 sec then set 8000 instead of 500)
private CountDownTimer mCountDownTimer = new CountDownTimer(clickDelayTime, clickDelayTime) {
@Override
public void onTick(long millisUntilFinished) {
}
@Override
public void onFinish() {
// set click count to 0 if user stop clicking before timer finish
clickCount = 0;
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final TextView tvClick = (TextView) findViewById(R.id.tvClick);
tvClick.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// increment click count
clickCount++;
// cancel previous timer
mCountDownTimer.cancel();
// start new timer after next click
mCountDownTimer.start();
if (clickCount == maxClick) {
// cancel current toast
mToast.cancel();
Toast.makeText(MainActivity.this, "You have clicked " + clickCount + " times.", Toast.LENGTH_SHORT).show();
clickCount = 0;
return;
}
// create toast is null
if (mToast == null) {
mToast = Toast.makeText(MainActivity.this, "Click " + (maxClick - clickCount) + " more times.", Toast.LENGTH_SHORT);
} else {
// if toast is not null then update message
mToast.setText("Click " + (maxClick - clickCount) + " more times.");
}
mToast.show();
}
});
}
}
关于java - Android 上点击定时器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42019776/