#android #kotlin
Вопрос:
Пожалуйста, помогите мне разобраться в этой неразрешенной ошибке. Приведенный ниже код дает
Неразрешенная ссылка: текст ниже кода имеет значение birthdayGreeting.kt
package com.example.birthdaygreet
import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import kotlinx.android.synthetic.main.activity_main.*
class BirthdayGreeting : AppCompatActivity() {
companion object{
const val NAME_EXTRA = "name_extra"
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_birthday_greeting)
val name = intent.getStringExtra(NAME_EXTRA)
BirthdayGreeting.text="happyBirthday$name"
}
}
Ошибка в соответствии с Android studio находится в
birthdayGreeting.text = «С днем рождения $имя» Вот код основного вида деятельности
package com.example.birthdaygreet
import android.content.Intent
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.view.View
import kotlinx.android.synthetic.main.activity_main.*
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
}
fun createBirthdayCard(view: View) {
val name =nameInput.editableText.toString()
val intent = Intent(this,BirthdayGreeting::class.java)
intent.putExtra(BirthdayGreeting.NAME_EXTRA,name)
startActivity(intent)
}
}
Комментарии:
1. Можете ли вы показать свои файлы R. layout.*?
2. У вас нет статической переменной «text», так что это неверный BirthdayGreeting.text. Если вы хотите установить текст в текстовое представление, вам нужно подписать идентификатор для этого текстового представления, например «myTextView», а затем задать текст в действии следующим образом: myTextView.text = «happyBirthday$name»
Ответ №1:
Вы используете неправильный синтетический импорт для BirthdayGreeting
класса. Вы должны использовать kotlinx.android.synthetic.main.activity_birthday_greeting.*
вместо kotlinx.android.synthetic.main.activity_main.*