【问题标题】:Kotlin Android extension can't resolve "text"Kotlin Android 扩展无法解析“文本”
【发布时间】:2017-10-23 11:55:54
【问题描述】:

所以我试图摆脱“findViewById”并决定将 Kotlin Android 扩展添加到我的项目中

在我的 gradle 里面:

apply plugin: 'com.android.application'

apply plugin: 'kotlin-android'

apply plugin: 'kotlin-android-extensions'

在项目级别 gradle.build:

classpath "org.jetbrains.kotlin:kotlin-android-extensions:$kotlin_version"

在我的 MainActivity 中:

import kotlinx.android.synthetic.main.activity_main.*

不过,我还是需要var editTextCity = editText_city.findViewById<EditText>(R.id.editText_city)

解决var city = editText_city.text.toString()

似乎扩展程序不起作用

【问题讨论】:

  • 您的示例中的某些内容已关闭。您正在为视图本身的视图调用findViewById。你也不要使用editTextCity。您是否曾多次使用该 ID?
  • @tynn 我的意思是editTextCity.text.toString()。但我想通过使用 kotlin 扩展(没有 findviewbyId)直接访问editText_city.text.toString()
  • 您应该编辑和更新您的问题以使其更清晰。
  • 同时发布您的 xml

标签: android kotlin kotlin-android-extensions


【解决方案1】:

尝试将项目级别gradle.build中的classpath编辑为:

classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"

并将其添加到您的应用级别 gradle.build 作为依赖项:

implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"

希望有效。

【讨论】:

    【解决方案2】:

    对于编辑文本,您必须使用:

     etEmail.setText(preferenceKeeper?.user?.email)
    

    如果你想从那里获取文本:

    val valueFromEditText=etEmail.text.toString()
    

    如果您使用的是 Kotlin 扩展,那么您可以通过 .xml 中提到的活动中的 id 直接访问

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-10-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-23
      • 1970-01-01
      相关资源
      最近更新 更多