Я хочу, чтобы моя кнопка была нажата один раз, и я хочу отключить двойной щелчок

package com.example.shery.tictactoe;

import android.annotation.SuppressLint;
import android.graphics.Color;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {
    Button btn1,btn2,btn3,btn4,btn5,btn6,btn7,btn8,btn9;
    TextView tv1,tv2;
    String field1 = tv1.getText().toString();
    @SuppressLint("CutPasteId")
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        btn1 = findViewById(R.id.btn1);
        btn2 = findViewById(R.id.btn2);
        btn3 = findViewById(R.id.btn3);
        btn4 = findViewById(R.id.btn4);
        btn5 = findViewById(R.id.btn5);
        btn6 = findViewById(R.id.btn6);
        btn7 = findViewById(R.id.btn7);
        btn8 = findViewById(R.id.btn8);
        btn9 = findViewById(R.id.btn8);
        tv1 = (TextView)findViewById(R.id.tv1);

        if (field1.equals("Turn X")){
            tv1.setTextColor(Color.GREEN);
        }else if (field1.equals("Turn O")){
            tv1.setTextColor(Color.GREEN);
        }

        btn1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                if (field1.equals("Turn X")){
                    btn1.setText("X");
                    tv1.setText("Turn O");
                } else {
                    btn1.setText("O");
                    tv1.setText("Turn X");
                }
            }
        });

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

Вы хотите полностью отключить щелчки после первого щелчка? Можно ли снова щелкнуть по нему когда-нибудь позже?

karthik prasad 09.10.2018 20:58

да, я хочу это сделать

Ahmed Shahryar Shery 09.10.2018 21:13
1
2
41
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Просто вызовите view.setEnabled(false); в своем onClickListener, чтобы отключить просмотр после первого щелчка.

Если я правильно понял, я не думаю, что он хочет полностью отключить щелчки, я думаю, что его вопрос был более близок - если я получаю два события щелчка за короткий период времени (например, DoubleClick), как мне игнорировать второй мероприятие.

karthik prasad 09.10.2018 20:57

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

Ahmed Shahryar Shery 09.10.2018 21:14

Что ж, вы могли бы сделать это с помощью setEnabled (false) или setClickable (false), как указано в приведенном выше ответе.

karthik prasad 09.10.2018 22:20

Насколько я понимаю, вы хотите отключить двойной щелчок по кнопке. Это невозможно, потому что Android ставит клики в очередь, но есть трюк, который я всегда использую: сохранение времени последнего щелчка:

private long btn1ClickTime= 0; //local variable declaration


findViewById(R.id.btn1).setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View v) {
        if (SystemClock.elapsedRealtime() - btn1ClickTime< 1000){
            return;//do nothing
        }
        btn1ClickTime= SystemClock.elapsedRealtime();
        //write your code here
    }
}

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