I don't know if this is of any help, but since myself, I couldn't put
all linked RadioButtons inside a single RadioGroup element, but
instead, due to how the layout was implemeted, were separated here and
there, I wrote this class:

public class SeparatedRadioGroup
implements CompoundButton.OnCheckedChangeListener {
  private final List<RadioButton> buttons = new
ArrayList<RadioButton>();

  public void addButton(RadioButton button) {
    if (buttons.isEmpty()) {
      button.setChecked(true);
    }

    buttons.add(button);
    button.setOnCheckedChangeListener(this);
  }

  public void onCheckedChanged(CompoundButton button, boolean state) {
    if (!state) {
      return;
    }

    for (RadioButton btn : buttons) {
      if (btn != button) {
        btn.setChecked(false);
      }
    }
  }
}


So you can use it instead of using a RadioGroup, if nothing else
helps.

ThursdayMorning wrote:
> I'm using a RadioGroup to select from a list of items. When the
> activity holding the Group loads, it gets passed an item id, and calls
> RadioGroup.check(id). The getCheckedRadioButtonId() returns the
> correct id, but the radiobutton itself doesn't show as being selected.
> If I click on any of the radiobuttons, they DO select, so it's not a
> problem with isClickable or anything like that.
>
> Here's my method, running inside of a subclass of Activity:
> locGrp is the RadioGroup in the view.
> locList is a corresponding list with the item names (had to use a
> seperate container so they could be clickable)
> currentLoc holds the integer id of the selected item
>
> public void refreshView(){
>
>       locGrp.removeAllViews();
>       locList.removeAllViews();
>       LayoutParams RGparams = new RadioGroup.LayoutParams(
>                       RadioGroup.LayoutParams.WRAP_CONTENT,
>                       RadioGroup.LayoutParams.WRAP_CONTENT);
>       LayoutParams LLparams = new LinearLayout.LayoutParams(
>                       LinearLayout.LayoutParams.WRAP_CONTENT,
>                       LinearLayout.LayoutParams.WRAP_CONTENT);
>       RadioButton noneBtn = new RadioButton(this);
>       TextView noneText = new TextView(this);
>       noneText.setText("(none)");
>       formatText(noneText);
>       noneBtn.setId(NO_LOCATION);
>       locGrp.addView(noneBtn, RGparams);
>       locList.addView(noneText, LLparams);
>
>       for(Entry<Integer, LocationFingerprintView> e :
> LocationFingerprintRepository.getView(thisRef).entrySet()){
>               RadioButton btn = new RadioButton(this);
>               btn.setId(e.getKey());
>               TextView text = new TextView(this);
>               text.setText(e.getValue().getName());
>               formatText(text);
>               addListener(text, btn.getId());
>               locGrp.addView(btn, RGparams);
>               locList.addView(text, LLparams);
>       }
>
>       locGrp.check(currentLoc);
> }
>
> This method gets called in onCreate, onActivityResult, onResume, and
> on the onCancelListener of a dialog box.
>
> Thanks in advance,
>  - TM
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
[EMAIL PROTECTED]
Announcing the new M5 SDK!
http://android-developers.blogspot.com/2008/02/android-sdk-m5-rc14-now-available.html
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to