Я не могу использовать привязку просмотра в activity в Kotlin android ,где я также использовал сопутствующий объект

#android #kotlin #android-activity #android-viewbinding #companion-object

Вопрос:

 package com.example.birthdayapp

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.TextView
import com.example.birthdayapp.databinding.ActivityMainBinding

class birthdayActivity : AppCompatActivity() {
    private  lateinit var binding: birthdayActivity
 

//использование сопутствующего объекта
сопутствующий объект{

        const  val NAME_EXTRA="Name_extra"
    }


    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)

        //implementing view binding
        binding= birthdayActivity.inflate(layoutInflater) //here red line shows below inflate
        setContentView(binding.root)   //here red line shows below root


        //getting name from main activity
        val name=intent.getStringExtra(NAME_EXTRA)




    }
}


//MainActivity

package com.example.birthdayapp

import android.content.Intent
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.Toast
import com.example.birthdayapp.databinding.ActivityMainBinding


class MainActivity : AppCompatActivity() {

    private  lateinit var binding: ActivityMainBinding

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
      binding= ActivityMainBinding.inflate(layoutInflater) //Here, I have successfully used viewbinding
        setContentView(binding.root)

        binding.birthdaybutn.setOnClickListener {
            val name=binding.nam.editableText.toString()
            val intent=Intent(this,birthdayActivity::class.java)
            intent.putExtra(birthdayActivity.NAME_EXTRA,name)

            startActivity(intent)
        }

    }
}
 

//Я успешно использовал привязку просмотра в MainActivity , но когда я попытался использовать привязку просмотра в birthdayActivity ,я получил красные строки для ( ключевое слово inflate и root), потому что я использовал сопутствующий объект в birthdayActiviy, тогда как у меня нет сопутствующего объекта в MainActiviy

Комментарии:

1. Иногда IDE не удается создать viewbinding класс, попробуйте перестроить свой проект.

2. Я попытался перестроить свой проект, но он все еще показывает ошибку

3. затем убедитесь, что ваше birthdayActivity имя класса привязки правильное, это, вероятно BirthdayActivityBinding .