我一直在努力创建一个小应用程序来学习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();
}
});
答案 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(我不确定,但这必须是这样。)