1 package com.xtremelabs.robolectric.shadows; 2 3 import android.widget.RadioGroup; 4 import com.xtremelabs.robolectric.internal.Implementation; 5 import com.xtremelabs.robolectric.internal.Implements; 6 import com.xtremelabs.robolectric.internal.RealObject; 7 8 import static android.widget.RadioGroup.OnCheckedChangeListener; 9 10 @SuppressWarnings({"UnusedDeclaration"}) 11 @Implements(RadioGroup.class) 12 public class ShadowRadioGroup extends ShadowLinearLayout { 13 @RealObject 14 protected RadioGroup realGroup; 15 16 private int checkedRadioButtonId = -1; 17 private OnCheckedChangeListener onCheckedChangeListener; 18 19 @Implementation getCheckedRadioButtonId()20 public int getCheckedRadioButtonId() { 21 return checkedRadioButtonId; 22 } 23 24 @Implementation check(int id)25 public void check(int id) { 26 checkedRadioButtonId = id; 27 notifyListener(); 28 } 29 30 @Implementation clearCheck()31 public void clearCheck() { 32 notifyListener(); 33 checkedRadioButtonId = -1; 34 notifyListener(); 35 } 36 notifyListener()37 private void notifyListener() { 38 if (onCheckedChangeListener != null) { 39 onCheckedChangeListener.onCheckedChanged(realGroup, checkedRadioButtonId); 40 } 41 } 42 43 @Implementation setOnCheckedChangeListener(OnCheckedChangeListener listener)44 public void setOnCheckedChangeListener(OnCheckedChangeListener listener) { 45 onCheckedChangeListener = listener; 46 } 47 getOnCheckedChangeListener()48 public OnCheckedChangeListener getOnCheckedChangeListener() { 49 return onCheckedChangeListener; 50 } 51 } 52