将多个值传递给Toast

时间:2013-02-10 22:47:58

标签: java android radio-button toast

我一直在努力创建一个小应用程序来学习android开发,我已经设置了4个单选按钮,每个按钮代表不同的颜色。我的问题是,如果用户选择它们,我找不到将单选按钮中的值传递给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();
    }
});

2 个答案:

答案 0 :(得分:2)

您只能将一个字符串传递给Toast.makeText()以显示在Toast中。但是,您可以使用+将字符串连接在一起,或使用StringBuilder来动态创建一个字符串,从而轻松构建包含所需信息的字符串。

作为旁注,您当前的代码将显示“蓝色”,无论是否选择了蓝色单选按钮。您需要多个if语句来确定选择了哪些单选按钮。

答案 1 :(得分: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();

    }
});

另外,如果chooseColor是一个包含radiobuttons的RadioGroup,你可能无法检查几个radiobuttons(我不确定,但这必须是这样。)