Android RadioGroup/RadioButton Selection - 不同 Android API 16/17 - 不能 Select Radiobutton
Android RadioGroup/RadioButton Selection - Different in Android API 16/17 - Cannot Select Radiobutton
我正在尝试设置对单选组中第一个单选按钮的选择。
在我深入探讨这个问题之前,我需要指出问题只发生在 API <= 16 中。当 运行 在 API 17 或更高版本的模拟器或真实设备中时,一切完美运行。
它应该做什么
RadioButton 变量 'first' 应该指向代码中前面创建的第一个 RadioButton。然后应将此 RadioButton 设置为已选中。如前所述,代码在 API 17 及更高版本上运行良好(我已经看到 API 16 的其他问题,主要与绘图和填充有关,但与此无关),这就是我的原因如此迷茫。逻辑必须没问题,否则根本行不通?但是您可以在日志中看到,每个 API.
上的 'first' 运行ning 中保存了不同的值
如果需要,我很乐意 post 更多 details/logs 等等
代码
//Set the default selection
levelChoices.check(first.getId());
Log.d(TAG, "Which is first: " + first);
Log.d(TAG, "Which is checked: " + levelChoices.getCheckedRadioButtonId());
登录 API 17 岁或以上
Which is first: android.widget.RadioButton{61c63b2 VFED..C.. ......I. 0,0-
0,0 #1}
Which is checked: 1
//Everything works fine, radio button is selected
登录 API 16 岁或以下
Which is first: android.widget.RadioButton@a7886a50
Which is checked: -1484232112
//No radio button is selected
看起来,对于较旧的 Android 版本,每个动态创建的 RadioButton 都必须使用 setId 为其指定一个 ID。
我不需要对此做任何事情,但是把它放在那里意味着 RadioButton 的设置正确,我测试过,现在一切都在旧的 API 中工作。
看来我的问题是没有正确添加 RadioGroup 的 RadioButton,但如前所述,这只发生在 API 17.
之前
这里有一个类似的问题和相同的建议解决方案:
NullPointerException in RadioGroup.setOnCheckedChangeListener in APIS 15 & 16
我正在尝试设置对单选组中第一个单选按钮的选择。 在我深入探讨这个问题之前,我需要指出问题只发生在 API <= 16 中。当 运行 在 API 17 或更高版本的模拟器或真实设备中时,一切完美运行。
它应该做什么
RadioButton 变量 'first' 应该指向代码中前面创建的第一个 RadioButton。然后应将此 RadioButton 设置为已选中。如前所述,代码在 API 17 及更高版本上运行良好(我已经看到 API 16 的其他问题,主要与绘图和填充有关,但与此无关),这就是我的原因如此迷茫。逻辑必须没问题,否则根本行不通?但是您可以在日志中看到,每个 API.
上的 'first' 运行ning 中保存了不同的值如果需要,我很乐意 post 更多 details/logs 等等
代码
//Set the default selection
levelChoices.check(first.getId());
Log.d(TAG, "Which is first: " + first);
Log.d(TAG, "Which is checked: " + levelChoices.getCheckedRadioButtonId());
登录 API 17 岁或以上
Which is first: android.widget.RadioButton{61c63b2 VFED..C.. ......I. 0,0-
0,0 #1}
Which is checked: 1
//Everything works fine, radio button is selected
登录 API 16 岁或以下
Which is first: android.widget.RadioButton@a7886a50
Which is checked: -1484232112
//No radio button is selected
看起来,对于较旧的 Android 版本,每个动态创建的 RadioButton 都必须使用 setId 为其指定一个 ID。 我不需要对此做任何事情,但是把它放在那里意味着 RadioButton 的设置正确,我测试过,现在一切都在旧的 API 中工作。
看来我的问题是没有正确添加 RadioGroup 的 RadioButton,但如前所述,这只发生在 API 17.
之前这里有一个类似的问题和相同的建议解决方案:
NullPointerException in RadioGroup.setOnCheckedChangeListener in APIS 15 & 16