gpt4 book ai didi

Android RadioGroup checkedId越界

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

我正在做一个应用程序,我必须在其中为初始选择的项目生成具有特定基值的复选框,然后更改它的值。那里没有什么很复杂的。

我的问题是当我重置布局时,我创建了一个新的 RadioGroup,其中包含新的 RadioButtons 和一个新的 RadioGroup OnCheckedChangeListener。但是,当我在重置 UI 后单击复选框时,来自监听器的 checkId 输出的内容太大,超出了我的 RadioGroup 的范围。

这是我的代码。我不会显示重置部分,但主要是调用 removeAllViews() 然后再次生成布局。

final RadioGroup optGroup = new RadioGroup(getActivity());
optGroup.setOrientation(LinearLayout.HORIZONTAL);
for(int itemNo = 0; itemNo < cell.getList().countItems(); itemNo++){
RadioButton rButton = new RadioButton(getActivity());
rButton.setText(cell.getList().getItem(itemNo).getLabel());
optGroup.addView(rButton);
if(cell.getSelectedListItem().getLabel().equals(cell.getList().getItem(itemNo).getLabel())){
optGroup.check(itemNo+1);
}
}
optGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
cell.selectListItem(String.valueOf(checkedId));
}
});
linearLayout.addView(optGroup);

当我记录我的输入时,在重置 UI 之前,输出范围为 1 到 3(我有 3 个复选框),重置后,输出范围为 4 到 6。

编辑 初始检查也只适用于第一次,就像第二次显示的 3 范围是从 4 到 6 一样。

谢谢!

最佳答案

你应该设置radioButton ID

rButton.setId(itemNo);

但请确保不要使用 0 作为 Id。由于每个 RadioButton Id 都必须是唯一的,我猜操作系统正在跟踪第一次运行时使用了哪些自动生成的 ID (1-3)。然后重置后,它与 4-6,(从 3 恢复计数)

关于Android RadioGroup checkedId越界,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36265075/

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