Как вы добавляете задержку между нажатием пользователем кнопки изображения?

Я хотел бы сделать так, чтобы пользователю пришлось немного подождать, прежде чем ему будет разрешено нажать кнопку imageButton, я не знаю лучшего подхода для этого.

private class HandleClick implements View.OnClickListener {

    public void onClick(View arg0) {

        if (arg0.getId()==R.id.imageButton){
            ((TextView) findViewById(R.id.textView2)).setText("Pressed: " + ++howManyClicks1);
            /* Uri uri = Uri.parse("https://abr.se/happyeno/?get=happyeno_svar_put&svar_id=1");
            Intent intent = new Intent(Intent.ACTION_VIEW, uri);*/
            simpleWebView.loadUrl("https://abr.se/happyeno/?get=happyeno_svar_put&svar_id=1");
            //startActivity(intent);

        }
        else if (arg0.getId()==R.id.imageButton1){
            ((TextView) findViewById(R.id.textView3)).setText("Pressed: " + ++howManyClicks2);
            /*Uri uri = Uri.parse("https://abr.se/happyeno/?get=happyeno_svar_put&svar_id=2");
            Intent intent = new Intent(Intent.ACTION_VIEW, uri);
            //startActivity(intent);*/
            simpleWebView.loadUrl("https://abr.se/happyeno/?get=happyeno_svar_put&svar_id=2");
        }
        else if (arg0.getId()==R.id.imageButton2){
            ((TextView) findViewById(R.id.textView5)).setText("Pressed: " + ++howManyClicks3);
            /*Uri uri = Uri.parse("https://abr.se/happyeno/?get=happyeno_svar_put&svar_id=3");
            Intent intent = new Intent(Intent.ACTION_VIEW, uri);
            //startActivity(intent);*/
            simpleWebView.loadUrl("https://abr.se/happyeno/?get=happyeno_svar_put&svar_id=3");

        }
    }
}

Я не хочу, чтобы пользователь мог спамить, нажимая кнопки изображения. Может быть, лучше всего добавить задержку или отключить кнопку на короткое время после ее нажатия?

после нажатия кнопки подождите 5 секунд, после чего ваша требуемая задача будет выполнена - это то, что вы хотите правильно

MurugananthamS 09.04.2019 13:31

@MurugananthamS да, это может быть лучший способ подойти к этому.

EliiTryToLearn 09.04.2019 13:41

хорошо, я сообщу таймер обратного отсчета

MurugananthamS 09.04.2019 13:43
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
3
57
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

попробуй так

new Handler().postDelayed(new Runnable() {
        @Override
        public void run() {
            // Magic here
        }
    }, 1000); // Millisecond 1000 = 1 sec

или вы можете взглянуть на эта ссылка

Он установит OnClickListener через 5 секунд. Вы также можете сразу установить OnClickListener, а затем установить изображение как включенное.

void setListeners() {
    imageView.postDelayed(new Runnable() {
        @Override
        public void run() {
            imageView.setOnClickListener(this);
        }
    }, 5 * 1000);
    //or like that
    new Handler(Looper.getMainLooper()).postDelayed(new Runnable() {
        @Override
        public void run() {
            imageView.setOnClickListener(this);
        }
    }, 5 * 1000);
}
Ответ принят как подходящий

Попробуйте таймер обратного отсчета внутри прослушивателя кликов

new CountDownTimer(5000, 1000) {

   public void onTick(long millisUntilFinished) {
      //count down 5,4,3,2,1.
   }

   public void onFinish() {
      //Write you logic here
   }

}.start();

Другие вопросы по теме