2013-02-10 98 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