2013-02-10 72 views
0

我一直在试图让一个小应用程序来学习android开发,我已经设置了4个单选按钮,每个代表不同的颜色。我的问题是,如果用户选择它们,我无法找到将单选按钮的值传递给烤面包的方法,例如,如果用户选择黄色和蓝色,烤面包将输出用户选择了蓝色和黄色的颜色,我只能找到文件来传递一个值给敬酒。将多个值传递给吐司

任何人都可以提供任何建议如何过来呢?

感谢

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

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

作为一个方面说明,您当前的代码将显示“蓝色”是否选中蓝色单选按钮。您将需要几个if语句来确定选择了哪些单选按钮。

0

我只是同意代码大师,除了ü应该检查,如果事情是在你的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是一个RadioGroup中含有单选按钮,你可能无法检查几个单选按钮(我不确定,但这是必须的。)

+0

也许你可以解释为什么你认为“这是更好的方式”。 (并不是我不同意。) – 2013-02-28 00:00:05

+0

它不会引用你的解决方案或你,'它'是指大卫的代码,我想这是更好的,因为它正在我的项目上工作。 – guness 2013-02-28 10:42:19

+0

我明白你的意思。我只是建议你解释你的答案。当然还有其他的方法可以编译和运行。为什么你的建议解决方案比其他选择更好?为什么你的建议改善了OP的代码? – 2013-02-28 23:57:37