Неразрешенная ссылка: текст

#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.*