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

我有一个简单的故事应用程序,读者在开始时选择他们是男性还是女性。我有一个男孩和女孩的广播组。


然后我想获取此信息并使用它,以便显示正确的性别措辞。他和她。


我用过这个代码


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。即使单击了男孩单选按钮。


请任何人都可以提供任何帮助。


慕码人8056858
浏览 124回答 3
3回答

宝慕林4294392

我假设错误是因为您的单选按钮的文本实际上并没有说“男孩”。也许是“男孩”?无论如何,最好检查 id 而不是文本。假设您使用 xml 制作了无线电组,您应该提供您的按钮 ID。例如id“男孩”。然后你可以这样做:public void onRadioButtonClicked(View view) {    if (rg.getCheckedRadioButtonId() == R.id.boy) {        gender = 1;    } else {        gender = 2;    }}

慕仙森

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

精慕HU

您正在使用 equals 方法!这是不正确的!你要使用的是 (rb.getText().compareToIgnoreCase(“boy”) == 0)Equals 比较内存引用的值而不是它们的实际值,因为 compareTo 将比较这些值,返回 0 表示“匹配”,-1 或 1(不需要担心这些值,它们只是意味着它们不匹配)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java