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");
}
}
});
Я хочу, чтобы моя кнопка была нажата один раз, и я хочу отключить двойной щелчок, поэтому каков будет способ сделать это и как это сделать в моем коде, и я хочу, чтобы остановить двойной щелчок, это мой код ниже, вы можете проверить. Я хочу, чтобы моя кнопка была нажата один раз, и я хочу отключить двойной щелчок:
да, я хочу это сделать
Просто вызовите view.setEnabled(false); в своем onClickListener, чтобы отключить просмотр после первого щелчка.
Если я правильно понял, я не думаю, что он хочет полностью отключить щелчки, я думаю, что его вопрос был более близок - если я получаю два события щелчка за короткий период времени (например, DoubleClick), как мне игнорировать второй мероприятие.
на самом деле я хочу сделать игру в крестики-нолики, поэтому я спрашивал вас, я не хочу, чтобы меня снова щелкали
Что ж, вы могли бы сделать это с помощью setEnabled (false) или setClickable (false), как указано в приведенном выше ответе.
Насколько я понимаю, вы хотите отключить двойной щелчок по кнопке. Это невозможно, потому что 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
}
}
Вы хотите полностью отключить щелчки после первого щелчка? Можно ли снова щелкнуть по нему когда-нибудь позже?