检查 kotlin 中的空字符串不起作用

Checking empty string in kotlin doesn't work

我是 kotlin 开发的初学者,我正在用 kotlin 做一个简单的 TicTacToe 游戏,我想检查前三个按钮文本是否相等,同时其中一个不为空,但是当我使用 ! button1.text.toString().isEmpty 它不起作用。不知道为什么。帮我。这是我的科特林和 xml 代码

package com.example.tictac

import android.support.v7.app.AppCompatActivity
import android.os.Bundle
import android.widget.Button
import android.widget.Toast
import kotlinx.android.synthetic.main.activity_tic_tac.*

class TicTacActivity : AppCompatActivity() {
var isFirstPlayer = true;

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_tic_tac)
    init()
}


fun init() {

    buttonClick(button1)
    buttonClick(button2)
    buttonClick(button3)
    buttonClick(button4)
    buttonClick(button5)
    buttonClick(button6)
    buttonClick(button7)
    buttonClick(button8)
    buttonClick(button9)

}

fun buttonClick(button: Button) {
    button.setOnClickListener() {
        if (isFirstPlayer) {
            button.text = "X"
            isFirstPlayer = false
        } else {
            button.text = "O"
            isFirstPlayer = true
        }
        button.isClickable = false
    }

    if (!button1.text.toString().isEmpty() && 
button1.text.toString().equals(button2.text.toString()) && 
button2.text.toString().equals(button3.text.toString())) {
        winner(button1)
    }
}

fun winner(button: Button) {
    Toast.makeText(this, button.text.toString(), Toast.LENGTH_LONG).show()
}
}

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context=".TicTacActivity"
        android:orientation="vertical"
>
    <LinearLayout android:layout_width="match_parent"
                  android:layout_height="wrap_content"
                  android:layout_weight="1">

        <Button
                android:id="@+id/button1"
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:textSize="49sp"
                />

        <Button
                android:id="@+id/button2"
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:textSize="49sp"
        />

        <Button
                android:id="@+id/button3"
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:textSize="49sp"/>

    </LinearLayout>

    <LinearLayout android:layout_width="match_parent"
                  android:layout_height="wrap_content"
                  android:layout_weight="1">

        <Button android:id="@+id/button4"
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:textSize="49sp"/>

        <Button android:id="@+id/button5"
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:textSize="49sp"/>

        <Button android:id="@+id/button6"
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:textSize="49sp"/>

    </LinearLayout>

    <LinearLayout android:layout_width="match_parent"
                  android:layout_height="wrap_content"
                  android:layout_weight="1">

        <Button android:id="@+id/button7"
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:textSize="49sp"/>

        <Button android:id="@+id/button8"
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:textSize="49sp"/>

        <Button android:id="@+id/button9"
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:textSize="49sp"/>

    </LinearLayout>


</LinearLayout>

您必须在 button.setOnClickListener 中包含您认为它不起作用的代码,以便在您每次单击按钮时执行它。
当然你必须添加更多的代码来检查其他情况。

fun buttonClick(button: Button) {
    button.setOnClickListener() {
        if (isFirstPlayer) {
            button.text = "X"
            isFirstPlayer = false
        } else {
            button.text = "O"
            isFirstPlayer = true
        }
        button.isClickable = false

        if (!button1.text.toString().isEmpty() &&
            button1.text.toString().equals(button2.text.toString()) &&
            button2.text.toString().equals(button3.text.toString())) {
            winner(button1)
        }
    }
}