Kotlin 无法识别 Android XML 元素的 ID

DAT*_*ATA 3 java android kotlin

各位程序员朋友们好!

我尝试从我的 xml 文件示例中调用元素:来自我的 activity.xml 的“按钮”,但是当我尝试在代码中调用它时 MainActivity.kt 没有解析我的 id 我试图清理并重新构建项目但是仍然有问题也使缓存重新启动无效

像这样我想从我的 acitivty_main.xml 中调用按钮

button.setOnClickListener{}

MainActivity

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import com.mostafa.stringlength.R.id.editText



class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
Run Code Online (Sandbox Code Playgroud)

按钮。(我在这里尝试调用按钮)但没有显示任何内容 //

    }

}
Run Code Online (Sandbox Code Playgroud)

xml 活动:

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 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">


    <Button
        android:id="@+id/button"
        android:layout_width="138dp"
        android:layout_height="58dp"
        android:layout_marginStart="136dp"
        android:layout_marginEnd="137dp"
        android:layout_marginBottom="212dp"
        android:text="????? ???????"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.0"
        app:layout_constraintStart_toStartOf="parent" />

    <EditText
        android:id="@+id/editText"
        android:layout_width="411dp"
        android:layout_height="360dp"
        android:layout_marginStart="43dp"
        android:layout_marginTop="44dp"
        android:layout_marginEnd="43dp"
        android:ems="10"
        android:inputType="textPersonName"
        android:text="???? ???? ???"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <LinearLayout
        android:layout_width="417dp"
        android:layout_height="195dp"
        android:orientation="vertical"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent">

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

    </LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
Run Code Online (Sandbox Code Playgroud)

小智 9

现在,插件部分如下:

plugins {
    id 'com.android.application'
    id 'kotlin-android'
    id 'kotlin-android-extensions'
}
Run Code Online (Sandbox Code Playgroud)


Abh*_*hra 5

确保您的 gradle 文件顶部有这 2 行

apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
Run Code Online (Sandbox Code Playgroud)

并放

import kotlinx.android.synthetic.main.activity_main.* 在您的活动文件中