Java 将多个值传递给Toast
我一直在尝试制作一个小应用程序来学习android开发,我设置了4个单选按钮,每个按钮代表不同的颜色。我的问题是,如果用户选择单选按钮,我无法找到将值从单选按钮传递到toast的方法,例如,如果用户选择黄色和蓝色,toast将输出用户选择了蓝色和黄色的颜色,我只能找到将一个值传递给toast的文档 怎么过来Java 将多个值传递给Toast,java,android,radio-button,toast,Java,Android,Radio Button,Toast,我一直在尝试制作一个小应用程序来学习android开发,我设置了4个单选按钮,每个按钮代表不同的颜色。我的问题是,如果用户选择单选按钮,我无法找到将值从单选按钮传递到toast的方法,例如,如果用户选择黄色和蓝色,toast将输出用户选择了蓝色和黄色的颜色,我只能找到将一个值传递给toast的文档 怎么过来 chooseColor.setOnClickListener(new View.OnClickListener() { @Override public void onCl
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();
}
});
您只能将单个字符串传递给要在Toast中显示的
Toast.makeText()
。但是,通过使用+
将字符串连接在一起或使用StringBuilder
动态创建一个字符串,您可以轻松构建一个包含所需所有信息的字符串
作为旁注,无论是否选择蓝色单选按钮,当前代码都将显示“蓝色”。您将需要几个
if
语句来确定选择了哪些单选按钮。我同意代码专家的意见,除了您应该检查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是一个包含单选按钮的放射组,您可能无法检查多个单选按钮(我不确定,但这一定是一种方式)。也许您可以解释为什么您认为“这种方式更好”。(并不是说我不同意。)它不是指你的解决方案或你,“它”指的是David的代码,我想它更好,因为它正在我的项目中工作。我理解你的意思。我只是建议你对你的答案作出解释。当然还有其他方法可以编译和运行。为什么您建议的解决方案比其他备选方案更好?为什么你的建议会改进OP的代码?