gpt4 book ai didi

Android 动态生成的单选按钮一旦以编程方式 setChecked 就不会取消选中

转载 作者:行者123 更新时间:2023-12-02 11:01:49 27 4
gpt4 key购买 nike

当我单击同一 RadioGroup 中的其他 RadioButton 时,我无法取消选中以下动态生成的 RadioButton。

我什至求助于编写自己的处理程序来清除RadioGroup(如下),并尝试了另一个使所有RadioButtons .setChecked(false)的处理程序,但这仍然没有清除我在PopulateAccessPoints中设置检查的RadioButton。

有什么想法吗?

RelativeLayout rlaAccessPoints;
RadioGroup rg;

public void onRadioButtonClicked(View view) {
// Is the button now checked?
RadioButton rd = (RadioButton)view;
rg.clearCheck();
rd.setChecked(true);
}


private void PopulateAccessPoints(List<clsAccessPoint> accessPoints){
rg = new RadioGroup(this);

for (clsAccessPoint acp : accessPoints) {
RadioButton rd = new RadioButton(this);
rd.setText(acp.ID + ": " + acp.Name);

rd.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
onRadioButtonClicked(v);
}
});

rg.addView(rd);
}

rlaAccessPoints.addView(rg);

for (int i = 0; i <= rg.getChildCount() - 1; i++){
RadioButton rd = new RadioButton(this);
rd = (RadioButton)rg.getChildAt(i);

String rdText = rd.getText().toString();
int colonPos = rdText.indexOf(":");
rdText = rdText.substring(0, colonPos).toString();
if (Settings.AccessPointID.equals(rdText)){
//rg.check(i);
rd.setChecked(true);
}
}

}

编辑:我在下面发布了一个答案,其中包含更简洁的代码;请看一下。

最佳答案

经过一个小时的努力,我找到了解决方案。

将RadioButton添加到RadioGroup后检查它。

Kotlin 中的解决方案 -

val rb = layoutInflater.inflate(R.layout.custom_radiobutton, null) as RadioButton
rb.text = label
rb.isChecked = false

radioGroup.addView(rb)
if(selected) rb.isChecked = true

关于Android 动态生成的单选按钮一旦以编程方式 setChecked 就不会取消选中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25406509/

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