首页 > 解决方案 > 我无法在 Kotlin android 的活动中使用视图绑定,我也使用了伴随对象

问题描述

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 中成功使用了视图绑定,但是当我尝试在生日活动中使用 viewbindig 时,我得到了(inflate 和 root 关键字)的红线,因为我在生日活动中使用了伴随对象,而在 MainActiviy 中没有伴随对象

标签: androidkotlinandroid-activityandroid-viewbindingcompanion-object

解决方案


推荐阅读