gpt4 book ai didi

android - 如何在 Kotlin 中使用 "when"onClickListener 进行数据绑定(bind)

转载 作者:行者123 更新时间:2023-11-29 16:30:11 26 4
gpt4 key购买 nike

我使用早期的 ButterKnife 库。这就是我在多个对象上使用点击事件的方式。

@OnClick({ R.id.door1, R.id.door2, R.id.door3 })
public void pickDoor(DoorView door) {
if (door.hasPrizeBehind()) {
Toast.makeText(this, "You win!", LENGTH_SHORT).show();
} else {
Toast.makeText(this, "Try again", LENGTH_SHORT).show();
}
}

没有 ButterKnife;

 override fun onClick(v: View?) {
when (v!!.id) {
R.id.tv -> {
Toast.makeText(this, "You are click textview", Toast.LENGTH_SHORT).show()
}
R.id.btn -> {
Toast.makeText(this, "You are click button.", Toast.LENGTH_SHORT).show()
}
else -> {
}
}
}

点击流程我能做什么。我想用 switch 或 when 来做到这一点。听起来像是编写单独的 setOnClickListener 的糟糕代码。

   binding.btnFive.setOnClickListener { MyLog.log("five") }
//or
btnFour.setOnClickListener { MyLog.log("four") }

但我现在使用数据绑定(bind)。我如何使用数据绑定(bind)来做到这一点?

我在找什么;

when(binding){ //of course, this doesn't work. exemplary.
btnFirst->{}
btnSecond->{}
}

所以我不想一直写 setOnClickListener{}。我该怎么做?

最佳答案

要获取View id,您必须调用binding.btn.id。但数据绑定(bind)建议使用 ViewModel 并在 layout.xml 中处理点击

<Button
.....
android:onClick="@{()-> viewModel.btnClick()}"
..../>

您可以在 developer docs 找到解释

关于android - 如何在 Kotlin 中使用 "when"onClickListener 进行数据绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56749471/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com