【问题标题】:MainActivity.kt don't recognizing "ID's" in activity_main.xml [duplicate]MainActivity.kt 无法识别 activity_main.xml 中的“ID”[重复]
【发布时间】:2021-02-01 19:30:40
【问题描述】:

我有一个我无法解决的问题。 当我在 MainActivity 中写一个 ID 时,它显示它不存在但它在 activity_main 中。

请帮助 - 重新启动,“同步项目与 Gradle 文件”和清理项目没有帮助

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"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@android:color/black"
    android:orientation="vertical">

    <TextView
        android:id="@+id/tvExpression"
        android:layout_width="match_parent"
        android:layout_height="80sp"
        android:ellipsize="start"
        android:gravity="end"
        android:singleLine="true"
        android:textColor="@color/numberButton"
        android:textSize="40sp" />
</LinearLayout>

MainActivity.kt:

package com.example.procalculator

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle


class MainActivity : AppCompatActivity() {

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

        tvExpression

    }
}

【问题讨论】:

  • 如果您不使用 Kotlin 合成,请使用 findViewByID
  • @BurhanKhanzada OP 正在尝试使用合成导入,但它们只是被弃用了。您可以查看我提供的答案以获取更多信息:)

标签: android kotlin


【解决方案1】:

您需要使用findViewById 让活动找到视图。

val tvExpression = findViewById<TextView>(R.id.tvExpression)

个人非常推荐ViewBinding:
https://developer.android.com/topic/libraries/view-binding
它节省了很多不必要的代码

分级:

    buildFeatures {
        viewBinding true
    }

主活动:

val binding = ActivityMainBinding.inflate(layoutInflater)
setContentView(binding.root)
binding.tvExpression //it's refereing to your textView

【讨论】:

  • 如何在不添加类似此处的内容的情况下进行操作? youtube.com/watch?v=EpP6KgJtHTk&t=108s时间:8:10
  • bro 在您所指的视频中使用的是 kotlin 合成,现在已弃用,因此只需使用 findViewByID 或 viewBinding
  • 要让合成器工作,您需要将 apply plugin: 'kotlin-android-extensions' 添加到 Gradle
猜你喜欢
  • 2021-02-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-02-16
  • 2018-02-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多