为什么 TextView 的 setText 在 kotlin 的 android studio 中不起作用?

why doesn't setText of TextView work in android studio in kotlin?

我在 android studio 中发现 TextView 的 setText 不起作用。看下一个代码。我希望如果在 nextCode 中单击追加按钮,textView 中的文本将更改为 editText.text.toString()。但不会改变。为什么这样? Activity.kt :

package com.example.myapplication

import android.content.Context
import android.content.Context.LAYOUT_INFLATER_SERVICE
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.util.AttributeSet
import android.util.Log
import android.view.LayoutInflater
import android.view.View
import android.widget.*

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        val editText = findViewById(R.id.editText) as EditText
        val textView = findViewById(R.id.textView) as TextView
        val button = findViewById(R.id.button) as Button
        button.setOnClickListener(View.OnClickListener(){
            @Override
            fun onClick(view : View){
                textView.setText(editText.text.toString())
            }
        })
    }
}

activity_main.xml :

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity"
    android:orientation="vertical"
    android:id="@+id/root_layout">

    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/editText"/>
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="append"
        android:id="@+id/button"/>
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/textView"
        android:text="4"/>

</LinearLayout>

您没有正确设置点击侦听器。指定

button.setOnClickListener(object : View.OnClickListener {
    override fun onClick(view: View) {
        textView.setText(editText.text.toString())
    }
})

或 lambda 构造:

button.setOnClickListener {
    textView.setText(editText.text.toString())
}