Kotlin 如何将绑定初始化为属性(android viewmodel)?

Kotlin 如何将绑定初始化为属性(android viewmodel)?,kotlin,mvvm,viewmodel,Kotlin,Mvvm,Viewmodel,我希望变量绑定是一个属性,这样所有方法都可以访问它,但我不知道如何初始化它 val binding: pendaftaranBinding= DataBindingUtil.inflate(inflater, R.layout.pendaftaran, container, false) 到 初始化init{}块中的属性 您可以分配该类型,然后在init{}块中执行一些任务后对其进行初始化 val绑定:pendaftaranBinding 初始化{ ... binding=D

我希望变量绑定是一个属性,这样所有方法都可以访问它,但我不知道如何初始化它

 val binding: pendaftaranBinding=
        DataBindingUtil.inflate(inflater, R.layout.pendaftaran, container, false)

初始化init{}块中的属性 您可以分配该类型,然后在init{}块中执行一些任务后对其进行初始化

val绑定:pendaftaranBinding 初始化{ ... binding=DataBindingUtil.inflateinflater,R.layout.pendaftaran,container,false ... } 稍后在代码中对其进行初始化 如果您不希望在类的构造中进行初始化,而希望稍后在代码中对其进行初始化,则可以使用:

lateinit变量绑定:pendaftaranBinding 有趣的功能{ ... binding=DataBindingUtil.inflateinflater,R.layout.pendaftaran,container,false ... } 以便所有方法都可以访问它

我不理解这一行,好像你想要java中的静态属性,在类外初始化它。可以通过在kotlin中使用伴生对象来实现:

你的班级{ 伴星{ lateinit变量绑定:pendaftaranBinding } } 有趣的初始化绑定{ YourClass.binding= DataBindingUtil.inflateinflater,R.layout.pendaftaran,容器,false } 以便所有方法都可以访问它

如果我理解正确,您的意思是希望在其他方法中访问pendaftaranBinding类型变量,那么您只需在类的主体中声明该变量

例如:

class YourActivity : AppCompatActivity() {
     private lateinit var yourBinding: pendaftaranBinding

    override fun onCreate() {
       yourBinding = DataBindingUtil.inflate(inflater, R.layout.pendaftaran, container, false)
    }

    private fun yourOtherMethod() {
        yourBinding.yourView
    }
}

您可以使用绑定代理,请阅读:
如果要使用val而不是var

,以便所有方法都可以访问它,则不清楚要执行什么操作!为什么你还要把绑定对象放在伴生对象中?@ThunderCock检查代码前的段落和引号:
class YourActivity : AppCompatActivity() {
     private lateinit var yourBinding: pendaftaranBinding

    override fun onCreate() {
       yourBinding = DataBindingUtil.inflate(inflater, R.layout.pendaftaran, container, false)
    }

    private fun yourOtherMethod() {
        yourBinding.yourView
    }
}
lateinit var binding: pendaftaranBinding

init {
   binding = DataBindingUtil.inflate(inflater, R.layout.pendaftaran, container, false)
}