Для реализации данного функционала в Android, вам потребуется немного кода. Вот шаги для достижения вашей задачи:
1. В вашем xml-файле разметки (например, activity_main.xml) добавьте кнопку следующим образом:
<Button android:id="@+id/button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Нажми меня" />
2. В файле MainActivity.java найдите вашу кнопку и добавьте следующий код:
Button button = findViewById(R.id.button); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // делаем кнопку неактивной button.setEnabled(false); // сохраняем время нажатия в SharedPreferences long currentTime = System.currentTimeMillis(); SharedPreferences sharedPreferences = getSharedPreferences("MyPrefs", Context.MODE_PRIVATE); SharedPreferences.Editor editor = sharedPreferences.edit(); editor.putLong("lastClickTime", currentTime); editor.apply(); // запускаем отдельный поток с таймером на 5 секунд new Thread(new Runnable() { @Override public void run() { try { Thread.sleep(5000); // задержка на 5 секунд } catch (InterruptedException e) { e.printStackTrace(); } // восстанавливаем активность кнопки runOnUiThread(new Runnable() { @Override public void run() { button.setEnabled(true); } }); } }).start(); } });
3. Чтобы получить время последнего нажатия кнопки из SharedPreferences и проверить, прошло ли уже 5 секунд, добавьте следующий код в метод onCreate() вашего MainActivity.java:
SharedPreferences sharedPreferences = getSharedPreferences("MyPrefs", Context.MODE_PRIVATE); long lastClickTime = sharedPreferences.getLong("lastClickTime", 0); long currentTime = System.currentTimeMillis(); // если кнопка была нажата раньше, чем 5 секунд назад, делаем ее неактивной if (currentTime - lastClickTime < 5000) { button.setEnabled(false); // запускаем таймер на оставшееся время до 5 секунд new CountDownTimer(currentTime - lastClickTime, 1000) { @Override public void onTick(long millisUntilFinished) { // здесь можно обновить UI со счетчиком времени } @Override public void onFinish() { button.setEnabled(true); } }.start(); }
Таким образом, мы сначала делаем кнопку неактивной и сохраняем в SharedPreferences время ее нажатия. Затем мы запускаем отдельный поток с таймером на 5 секунд, после чего кнопка становится снова активной. Если кнопка была нажата в течение последних 5 секунд, мы также делаем кнопку неактивной и запускаем таймер на оставшееся время до 5 секунд.
Обратите внимание, что вы должны добавить разрешение на использование SharedPreferences в вашем файле манифеста:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />