【问题标题】:Android RadioGroup/RadioButton Selection - Different in Android API 16/17 - Cannot Select RadiobuttonAndroid RadioGroup/RadioButton 选择 - Android API 16/17 中的不同 - 无法选择 Radiobutton
【发布时间】:2017-05-11 08:11:18
【问题描述】:

我正在尝试设置单选组中第一个单选按钮的选择。 在深入探讨这个问题之前,我需要提一下这个问题只发生在 API

应该怎么做

RadioButton 变量“first”应该指向前面在代码中创建的第一个 RadioButton。然后应将此 RadioButton 设置为选中状态。如前所述,代码在 API 17 及更高版本上运行良好(我见过 API 16 的其他问题,主要与绘图和填充有关,但不是这个),这就是我如此困惑的原因。逻辑必须没问题,否则根本行不通?但是您可以在日志中看到,在每个 API 上运行的“first”中保存了不同的值。

如果需要,我很乐意发布更多详细信息/日志等。

代码

//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 android-radiogroup android-radiobutton


    【解决方案1】:

    看起来,对于较旧的 Android 版本,动态创建的每个 RadioButton 都必须使用 setId 指定一个 ID。 我不必对此做任何事情,但是将它放在那里意味着 RadioButton 的设置正确,我进行了测试,现在一切都在旧 API 中运行。

    看来我的问题在于未正确添加 RadioGroup 的 RadioButton,但如上所述,这只发生在 API 17 之前。

    这里有一个类似的问题,建议的解决方案相同:

    NullPointerException in RadioGroup.setOnCheckedChangeListener in APIS 15 & 16

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-23
      • 2023-03-29
      • 1970-01-01
      • 1970-01-01
      • 2014-06-11
      • 2014-04-04
      相关资源
      最近更新 更多