使单选按钮以编程方式在片段内响应 onClick 事件的最佳实践 (kotlin)
The best practice to make radio buttons respond to onClick events pragramatically within fragment (kotlin)
我正在寻找使单选按钮在片段 (kotlin) 中实用地响应 onClick 事件的最佳实践。
我想到了这个解决方案,但我认为这不是最好的解决方案。这是一个小片段:
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
fun onRadioButtonClicked(view: View) {
if (view is RadioButton) {
val checked = view.isChecked
when (view.getId()) {
R.id.option1 ->
if(checked) {
do something
}
R.id.option2 ->
if(checked) {
do something
}
R.id.option3 ->
if(checked) {
do something
}
R.id.option4 ->
if(checked) {
do something
}
R.id.option5 ->
if(checked) {
do something
}
}
}
}
itemOptions = arrayOf(
binding.option1,
binding.option2,
binding.option3,
binding.option4,
binding.option5
)
itemOptions.forEach { x ->
x.setOnClickListener{onRadioButtonClicked(x)}
}
谁能提出更好的选择?
单选按钮有一个单选组,您需要在其上实现 setOnCheckedChangeListener
radioGroup.setOnCheckedChangeListener{ radioGroup: RadioGroup, checkedId: Int ->
when(checkedId) -> {
R.id.option1 -> //do something
R.id.option2 -> //do something
R.id.option3 -> //do something
R.id.option4 -> //do something
}
}
我正在寻找使单选按钮在片段 (kotlin) 中实用地响应 onClick 事件的最佳实践。
我想到了这个解决方案,但我认为这不是最好的解决方案。这是一个小片段:
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
fun onRadioButtonClicked(view: View) {
if (view is RadioButton) {
val checked = view.isChecked
when (view.getId()) {
R.id.option1 ->
if(checked) {
do something
}
R.id.option2 ->
if(checked) {
do something
}
R.id.option3 ->
if(checked) {
do something
}
R.id.option4 ->
if(checked) {
do something
}
R.id.option5 ->
if(checked) {
do something
}
}
}
}
itemOptions = arrayOf(
binding.option1,
binding.option2,
binding.option3,
binding.option4,
binding.option5
)
itemOptions.forEach { x ->
x.setOnClickListener{onRadioButtonClicked(x)}
}
谁能提出更好的选择?
单选按钮有一个单选组,您需要在其上实现 setOnCheckedChangeListener
radioGroup.setOnCheckedChangeListener{ radioGroup: RadioGroup, checkedId: Int ->
when(checkedId) -> {
R.id.option1 -> //do something
R.id.option2 -> //do something
R.id.option3 -> //do something
R.id.option4 -> //do something
}
}