2012-06-25 12 views
26

Ho un gruppo radio rg1 e voglio ottenere il valore del pulsante di opzione selezionato.Android ottiene il valore del pulsante di opzione selezionato

so che posso ottenere il id del pulsante di scelta selezionato utilizzando:

if(rg1.getCheckedRadioButtonId()!=-1) 
int id= rg1.getCheckedRadioButtonId() 

che mi dà l'id, ma voglio il valore di quel pulsante.

risposta

60

È necessario ottenere il pulsante di opzione in corrispondenza dell'indice, quindi ottenere il valore del testo di tale pulsante. Prova questo codice qui sotto.

if(rg1.getCheckedRadioButtonId()!=-1){ 
    int id= rg1.getCheckedRadioButtonId(); 
    View radioButton = rg1.findViewById(id); 
    int radioId = radioGroup.indexOfChild(radioButton); 
    RadioButton btn = (RadioButton) rg1.getChildAt(radioId); 
    String selection = (String) btn.getText(); 
} 
+0

si funziona grazie, io accetta la tua risposta – Totti

+4

è l'ID ritornato da getCheckedRadioButton solo l'id all'interno del Gruppo Radio? Perché non è possibile ottenere l'id del pulsante e quindi utilizzare un findViewById più generale per ottenere il RadioButton instad di aggiungere ulteriori passaggi di indexOfChild e getChildAt – Rarw

+1

Che cos'è radioGroup su int radioId = radioGroup.indexOfChild (radioButton); –

48

provare questo:

RadioGroup rg = (RadioGroup)findViewById(R.id.youradio); 
String radiovalue = ((RadioButton)findViewById(rg.getCheckedRadioButtonId())).getText().toString(); 
+0

grazie, ho già una risposta, spero di poter selezionare più di una risposta come risposta accettata :(, davvero grazie amico , mi aiuti sempre – Totti

+1

Grazie. Dovresti convalidare se è null beucase potrebbe causare il crash dell'applicazione. – pess0a

3
RadioGroup rg = (RadioGroup)findViewById(R.id.youradio); 
String radiovalue = (RadioButton)this.findViewById(rg.getCheckedRadioButtonId())).getText().toString(); 
0

Credo che si dovrebbe provare questo

RadioGroup rg=(RadioGroup)findViewById(R.id.youradio); 
String radiovalue=(RadioButton)this.findViewById(rg.getCheckedRadioButtonId())).getText().toString(); 
0
RadioGroup bhktype_RadioGr = (RadioGroup)findViewById(R.id.bhkypeRadioGroup); 
int flatTypeId = bhktype_RadioGroup.getCheckedRadioButtonId(); 
String flat_type = ((RadioButton) findViewById(flatTypeId)).getText().toString(); 
1

Uno Code Line

String buisnesstype = ((RadioButton) rdtranscompany.findViewById(rdtranscompany.getCheckedRadioButtonId())).getText().toString(); 
0

risposta semplice una linea

View v = yourView; // as a button 

String radiovalue = (RadioButton)v).getText().toString(); 
1
rb1=(RadioButton)findViewById(rg1.getCheckedRadioButtonId()); 

Ora è possibile utilizzare rb1.getText() per ottenere il testo sul Radiobutton che viene controllato

Problemi correlati