0

我一直在尝试制作一个小应用程序来学习 android 开发,我设置了 4 个单选按钮,每个按钮代表不同的颜色。我的问题是,如果用户选择它们,我找不到将单选按钮中的值传递给 toast 的方法,例如,如果用户选择黄色和蓝色,则 toast 将输出用户选择了蓝色和黄色的颜色,我只能找到将一个值传递给 toast 的文档。

如何克服这个?

chooseColor.setOnClickListener(new View.OnClickListener()
{

    @Override
    public void onClick(View v) 
    {
        blue = (RadioButton) findViewById(selectedId);
        red = (RadioButton) findViewById(selectedId);
        yellow = (RadioButton) findViewById(selectedId);
        green = (RadioButton) findViewById(selectedId);
        brown = (RadioButton) findViewById(selectedId);

        Toast toast = Toast.makeText(getApplicationContext(), 
        blue.getText(), Toast.LENGTH_SHORT);            
        toast.setGravity(Gravity.CENTER|Gravity.CENTER_HORIZONTAL, 0, 0);                   
        toast.show();
    }
});
4

2 回答 2

2

您只能传递一个字符串以Toast.makeText()显示在 Toast 中。+但是,您可以通过将字符串连接在一起或StringBuilder更动态地创建一个字符串来轻松地构建一个包含您想要的所有信息的字符串。

附带说明一下,无论是否选择了蓝色单选按钮,您当前的代码都将显示“蓝色”。您将需要几个if语句来确定选择了哪些单选按钮。

于 2013-02-10T22:51:37.710 回答
0

我只是同意 Code-Guru,除了你应该检查你的 onClick 方法中是否检查了某些东西,最好这样:

chooseColor.setOnClickListener(new View.OnClickListener()
{

    @Override
    public void onClick(View v) 
    {

        blue = (RadioButton) findViewById(selectedId);
        red = (RadioButton) findViewById(selectedId);
        yellow = (RadioButton) findViewById(selectedId);
        green = (RadioButton) findViewById(selectedId);
        brown = (RadioButton) findViewById(selectedId);


        String str = ", ";
        str += blue.isChecked()?blue.getText()+", ":"";
        str += red.isChecked()?red.getText()+", ":"";
        str += yellow.isChecked()?yellow.getText()+", ":"";
        str += green.isChecked()?green.getText()+", ":"";
        str += brown.isChecked()?brown.getText()+", ":"";
        str = str.subString(0,str.length()-2);

        Toast toast = Toast.makeText(getApplicationContext(),str, Toast.LENGTH_SHORT);            
        toast.setGravity(Gravity.CENTER|Gravity.CENTER_HORIZONTAL, 0, 0);                   
        toast.show();

    }
});

此外,如果选择颜色是包含单选按钮的 RadioGroup,您可能无法检查多个单选按钮(我不确定,但这一定是这样。)

于 2013-02-10T23:13:37.277 回答