2016-08-19 59 views
0

是否有可能在Android中識別特定的Radio Button屬於哪個Radio Group?Android:特定的RadioButton屬於哪個RadioGroup?

如:

RadioGroup_A 
    - RadioButton_1A 
    - RadioButton_2A 

RadioGroup_B 
    - RadioButton_1B 
    - RadioButton_2B 

當我有RadioButton_1A,以idetify屬於RadioGroup_A?

我需要實現一個邏輯來忽略特殊情況的觸發CheckedChange偵聽器。只需要限制一個RadioGroup當我知道RadioButton屬於那個特定的RadioGroup時。

謝謝

+0

請解釋更多的情況,所以我們可以瞭解你想要達到的目標。如果RadioButton_1A具有唯一的ID,則清除它將始終屬於RadioGroup_A。 (沒有得到你的問題) – Ramit

+0

嗨Ramit,是所有RadioGroups和單選按鈕有標識(如:機器人:ID = 「@ + ID/RadioGroup_A」/機器人:ID = 「@ + ID/RadioButton_1A」) – JibW

+0

所以,如果你有唯一的ID,你想在某處查找基於單選按鈕的廣播組,可能會檢查單選按鈕onclick上的更改。因此,您可以直接使用RadioGroup_A作爲RadioButton_1A和RadioButton_2A。我想用我知道的信息來解釋。其他明智地告訴你要執行這樣的行動,首選樣本代碼。 – Ramit

回答

1

怎麼樣radioGroup.indexOfChild方法?該醫生說是回報:

表示視圖的組中的位置的正整數, 或-1,如果視圖沒有該組中存在

也許你可以檢查你的RadioButton退出在RadioGroup

int idx = radioGroup.indexOfChild(radioButton); 

if (idx != -1) 
{ 
    //radioButton is in the radioGroup 
} 
else { 
    //radioButton isnt in the radioGroup 
} 

希望它能幫助!

1

在我的一個應用程序中,我做了兩個RadioButon ArrayLists,每個組都有一個。在佈局膨脹後的onCreate()中,按照this answer中所述將RadioButton添加到每個組中。

然後,通過檢查哪個ArrayList包含RadioButton,可以實現所需的邏輯。

1

我描述你的問題的完整的例子請申請我的解決方案

public class MyClass extends Activity implements RadioGroup.OnCheckedChangeListener 
{ 
    RadioGroup rg1,rg2,rg3; 
    public void onCreate(Bundle b) 
    { 
     super.onCreate(b); 
     setContentView(R.layout.main); 


     rg1=(RadioGroup)findViewById(R.id.rg1); 
     rg2=(RadioGroup)findViewById(R.id.rg2); 
     rg3=(RadioGroup)findViewById(R.id.rg3); 


     rg1.setOnCheckedChangeListener(this); 
     rg2.setOnCheckedChangeListener(this); 
     rg3.setOnCheckedChangeListener(this); 

    } 

    @Override 
     public void onCheckedChanged(RadioGroup radioGroup, int i) { 

     if(radioGroup==rg1) 
     { 
      //First RadioGroup Clicked 
      RadioButton radio=(RadioButton)findViewById(i); 
      Toast.makeText(this,radio.getText().toString(),Toast.LENGTH_SHORT).show(); 
     } 

     if(radioGroup==rg2) 
     { 
      //Second RadioGroup Clicked 
      RadioButton radio=(RadioButton)findViewById(i); 
      Toast.makeText(this,radio.getText().toString(),Toast.LENGTH_SHORT).show(); 
     } 

     if(radioGroup==rg3) 
     { 
      //Third RadioGroup Clicked 
      RadioButton radio=(RadioButton)findViewById(i); 
      Toast.makeText(this,radio.getText().toString(),Toast.LENGTH_SHORT).show(); 
     } 
     } 
} 
相關問題