getCheckedRadioButtonId() returning useless int?

android, android-layout, onclick

Solution

`getCheckedRadioButtonId()` returns the `id` of the `RadioButton`(or `-1` if no `RadioButtons` are checked) that is checked in the `Radiogroup`. If you set distinct ids to the `RadioButons` in the layout then you will try to match those ids with the return of the method to see which one is checked:

//field in the class
private static final int RB1_ID = 1000;//first radio button id
private static final int RB2_ID = 1001;//second radio button id
private static final int RB3_ID = 1002;//third radio button id

//create the RadioButton
RadioButton rb1 = new RadioButton(this);
//set an id
rb1.setId(RB1_ID);


    int btn = radioGroup.getCheckedRadioButtonId();
    switch (btn) {
    case RB1_ID:
        // the first RadioButton is checked.
    break;
        //other checks for the other RadioButtons ids from the RadioGroup
    case -1:
        // no RadioButton is checked inthe Radiogroup
    break;
    }

Problem

I have a button's onClickListener that needs to detect which radiobutton was selected when the user clicks the button. Currently, the Log.v you see below in the onClickListener is not returning a useless bit of info: This is clicking submit three times with a different radio selected each time: 04-27 19:24:42.417: V/submit(1564): 1094168584 04-27 19:24:45.048: V/submit(1564): 1094167752 04-27 19:24:47.348: V/submit(1564): 1094211304 So, I need to know which radioButton is actually selected - is there a way to get the object of the radiobutton? I want to be able to get it's id# from XML, as well as its current text. Here's the relevant code: ``` public void buildQuestions(JSONObject question) throws JSONException { radioGroup = (RadioGroup) questionBox.findViewById(R.id.responseRadioGroup); Button chartsButton = (Button) questionBox.findViewById(R.id.chartsButton); chartsButton.setTag(question); Button submitButton = (Button) questionBox.findViewById(R.id.submitButton); chartsButton.setOnClickListener(chartsListener); submitButton.setOnClickListener(submitListener); TagObj tagObj = new TagObj(question, radioGroup); submitButton.setTag(tagObj); } public OnClickListener submitListener = new OnClickListener() { public void onClick(View v) { userFunctions = new UserFunctions(); if (userFunctions.isUserLoggedIn(activity)) { TagObj tagObject = (TagObj) v.getTag(); RadioGroup radioGroup = tagObject.getRadioGroup(); JSONObject question = tagObject.getQuestion(); Log.v("submit", Integer.toString(radioGroup.getCheckedRadioButtonId())); SubmitTask submitTask = new SubmitTask((Polling) activity, question); submitTask.execute(); } } }; ```

Original source