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 [email protected]
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
-~----------~----~----~----~------~----~------~--~---