2012-04-15 42 views
1

我有一個包含4個RadioButton的RadioGroup。他們都點擊時調用相同的方法,我知道如何獲取與該按鈕相關的文本,但我無法弄清楚如何獲取所選按鈕的名稱。如何檢索單擊按鈕時的名稱(android)

一定有辦法嗎?

感謝您的幫助

+1

你可以發佈的XML和d到目前爲止我們可以看到的java代碼:) – erbsman 2012-04-15 09:53:40

回答

0

你可以使用一個開關的情況下這樣做,只是的onclick與view.getId()的單選按鈕的每個ID進行比較,然後做按鈕名稱的需要全取。

下面是示例代碼::

switch (checkedRadioButton) { 
    case R.id.radiobutton1 : radioButtonSelected = "radiobutton1"; 
            break; 
    case R.id.radiobutton2 : radioButtonSelected = "radiobutton2"; 
           break; 
    case R.id.radiobutton3 : radioButtonSelected = "radiobutton3"; 
           break; 
} 

使用LINK

,或者您可以使用下面的代碼也

RadioGroup rg = (RadioGroup)findViewById(R.id.radiogroup); 
RadioButton radioButton = (RadioButton) findViewById(rg.getCheckedRadioButtonId()); 
Log.d("checked",radioButton.getText().toString()); 
+0

Agarwal,我對代碼上面寫的東西有點困惑。您是否建議我使用getid()來查找所選按鈕的ID,然後使用開關盒將其與所有按鈕的ID進行比較? – 2012-04-15 10:18:48

1

也許這可以幫助你在路上:

// radioGroup - you need to set this after creating the radiogroup, by findViewById done in the right place or just assigning upon creating it, depending on how you create your layouts. 
RadioButton radioButton = (RadioButton) findViewById(radioGroup.getCheckedRadioButtonId()); 
String text = radioButton.getText().toString(); 

讓我知道它是否有效:)總是渴望學習和幫助!

+0

這看起來很有希望,但Eclipse告訴我要導入RadioGroup Widget,然後我得到了這樣的抱怨:「無法對RadioGroup類型的非靜態方法getCheckedRadioButtonId()進行靜態引用」 – 2012-04-15 10:14:40

+0

而不是RadioGroup(它是類名),你必須有一個實際的引用到你初始化的RadioGroup。 – j0ntech 2012-04-15 10:30:44

+0

根據jOntechs的評論更新了答案。 – erbsman 2012-04-15 10:58:00

0

我假設您爲每個RadioButton使用View.OnClickListener。正確?

如果不這樣做。處理RadioButton點擊的最簡單方法是使用RadioGroup.OnCheckedChangeListener代替。

在你onCreate(...)後調用setContentView(...)找到RadioGroup ...

RadioGroup rg = (RadioGroup) findViewById(R.id.my_rg); 
rg.setOnCheckedChangeListener(...); 

onCheckedChanged監聽器看起來像這樣...

public void onCheckedChanged(RadioGroup group, int checkedId) 

...所以在聽者簡單地做以下...

RadioButton radioButton = (RadioButton) findViewById(checkedId); 
String text = radioButton.getText();