【发布时间】:2023-03-29 02:30:01
【问题描述】:
在我的 Android 应用程序中,需要在用户更改无线电组选择之前发出通知(警告)消息。
基本上,当用户单击该 Radio 组中的任何其他单选按钮时,我会尝试给出一个对话框消息(具有警告消息和是/否按钮以确认更改)。 如果用户按下 YES 则使用用户想要更改的内容更改 readio 按钮选择,否则(如果按下 NO)使用之前选择的内容进行选择。
收听OnCheckedChangeListener 时,我在onCheckedChanged 方法中看不到任何选项。什么是最好的方法来做到这一点。谢谢
编辑
我正在通过onCheckedChanged 方法中的对话框提供警告消息,并带有确认更改的选项(使用是/否按钮)。问题是当用户在看到警告后不想要新选择时,我需要一种方法来了解先前选择的单选按钮以恢复用户的新选择。
public void onCheckedChanged(RadioGroup group, int checkedId)
上述方法提供了“checkedId”,但如何知道之前选择了哪个单选按钮。当用户想要取消更改时需要它..
可以通过跟踪定义类级别变量以保存旧单选按钮 ID 或其他类似逻辑的早期选择来做到这一点。但是在 Radio 组中应该有一种直接的方式来取消新的选择(通过选择旧的返回)。我找了 beforeRadioCheckChange 类型的监听器,但没找到
【问题讨论】:
-
在
onCheckedChange中创建并显示一个对话框,并根据他们按下的内容让检查通过或取消选中。这还不清楚你到底卡在什么上面。 -
是的,做这个cM似乎很容易;
-
感谢 codeMagic 和 Eenvincible。我在“onCheckedChanged”方法中尝试过同样的事情。也就是说,使用是/否按钮加载带有警告消息的对话框,以确认或取消单选按钮选择更改。但问题是当用户按下 NO 我只想选择之前选择的单选按钮。基本上是在寻找一种取消新选择并选择较早选择的单选按钮的方法。可以通过定义一个类级别的变量来保存旧的选择和类似的逻辑来做到这一点。但是想知道是否有一种直接的方法可以取消新选择并选择旧选择。谢谢
-
下面提到的解决方案会导致 onChange 重新触发,因为它们被检测为更改。需要自动恢复机制或确认启用更改
标签: android android-radiogroup