kotlin-android-扩展不工作。会有什么问题?

kotlin-android-extensions not working. what will be the problem?

我正在遵循一些 kotlin 指南(今天下载 android studio)并且我使用了 setText 但它不起作用。 会有什么问题?

package com.example.basic

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.TextView
import android.widget.Toast
import kotlinx.android.synthetic.main.activity_main.*

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

        button.setOnClickListener {
            Toast.makeText(applicationContext, "button was pressed.", Toast.LENGTH_LONG).show()
        }

        button2.setOnClickListener {
            val input = editTextTextPersonName.text.toString()
            TextView.setText("entered value: ${input}")
        }
    }
}

(我试过将setText替换为text,但还是红色,无法保存)

未解决的引用:setText(错误)

TextView 是 class 的名称。您需要在 class 的实例上应用 setText。就像你一样

editTextTextPersonName.text.toString()

而不是

EditText.text.toString()

我不知道你的 TextView 被调用了,但你需要做

instanceOfYourTextView.setText("entered value: ${input}")

正如 Mayur Gajra 提到的,您没有使用 XML 的视图,而是使用 TextView class,这是您的问题,您需要的是类似这个:

<TextView
     android:id="@+id/text"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:text=""
     />

然后您的 MainActivity 应该如下所示:

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

        button.setOnClickListener {
            Toast.makeText(applicationContext, "button was pressed.", Toast.LENGTH_LONG).show()
        }

        button2.setOnClickListener {
            val input = editTextTextPersonName.text.toString()
            text.setText("entered value: ${input}")
        }
    }
}