为了账号安全,请及时绑定邮箱和手机立即绑定

通过单选按钮将男性或女性设置为整数

通过单选按钮将男性或女性设置为整数

慕码人8056858 2021-10-28 16:52:24
我有一个简单的故事应用程序,读者在开始时选择他们是男性还是女性。我有一个男孩和女孩的广播组。然后我想获取此信息并使用它,以便显示正确的性别措辞。他和她。我用过这个代码public void onRadioButtonClicked(View view) {    int radioButtonId = rg.getCheckedRadioButtonId();    rb = findViewById(radioButtonId);    if (rb.getText().equals("boy")) {        gender = 1;    } else {        gender = 2;    }}因此,如果选择男孩,则 int 性别 = 1,否则性别 = 2。当按下按钮让某人“说话”时,它会查看是否性别 ==1 它将显示他,否则它将使用她。我的问题是性别总是==2。我已经使用 Log.i 来检查这一点,我似乎可以将性别设为 1。即使单击了男孩单选按钮。请任何人都可以提供任何帮助。
查看完整描述

3 回答

?
宝慕林4294392

TA贡献2021条经验 获得超8个赞

我假设错误是因为您的单选按钮的文本实际上并没有说“男孩”。也许是“男孩”?


无论如何,最好检查 id 而不是文本。假设您使用 xml 制作了无线电组,您应该提供您的按钮 ID。例如id“男孩”。然后你可以这样做:


public void onRadioButtonClicked(View view) {

    if (rg.getCheckedRadioButtonId() == R.id.boy) {

        gender = 1;

    } else {

        gender = 2;

    }

}


查看完整回答
反对 回复 2021-10-28
?
慕仙森

TA贡献1827条经验 获得超8个赞

该问题可能是由于未将文本转换为String. 您需要打电话toString()进行比较。由于getText()回报率可编辑的类型,这样的代码应该是这样的:rb.getText().toString().equals("boy")。还要检查单词的拼写boy是否正确。


查看完整回答
反对 回复 2021-10-28
?
精慕HU

TA贡献1845条经验 获得超8个赞

您正在使用 equals 方法!这是不正确的!你要使用的是

 (rb.getText().compareToIgnoreCase(“boy”) == 0)

Equals 比较内存引用的值而不是它们的实际值,因为 compareTo 将比较这些值,返回 0 表示“匹配”,-1 或 1(不需要担心这些值,它们只是意味着它们不匹配)


查看完整回答
反对 回复 2021-10-28
  • 3 回答
  • 0 关注
  • 123 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号