这是这个问题的后续问题:
Android: How to get a radiogroup with togglebuttons?
我也在尝试使用切换按钮实现一个广播组,我已经按照上面的问题回答了问题。它表示要创建一个带有切换按钮的广播组,然后设置onCheckChangeListener
,但它不会触发。
这是布局:
<RadioGroup
android:id="@+id/howWellSleptRadioGroup"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<ToggleButton
android:id="@+id/imageButtonSleptWell1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textOn=""
android:textOff=""
android:minWidth="0dp"
android:minHeight="0dp"
style="?android:attr/borderlessButtonStyle"
android:background="@drawable/selector_well_sleep_1"
/>
<View
android:layout_width="0dp"
android:layout_height="1dp"
android:layout_weight="1" >
</View>
<ToggleButton
android:id="@+id/imageButtonSleptWell2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textOn=""
android:textOff=""
android:minWidth="0dp"
android:minHeight="0dp"
style="?android:attr/borderlessButtonStyle"
android:background="@drawable/selector_well_sleep_2" />
<View
android:layout_width="0dp"
android:layout_height="1dp"
android:layout_weight="1" >
</View>
<ToggleButton
android:id="@+id/imageButtonSleptWell3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textOn=""
android:textOff=""
android:minWidth="0dp"
android:minHeight="0dp"
style="?android:attr/borderlessButtonStyle"
android:background="@drawable/selector_well_sleep_3" />
</RadioGroup>
这是听众及其附件:
private final RadioGroup.OnCheckedChangeListener radioGroupToggleListener = new RadioGroup.OnCheckedChangeListener()
{
@Override
public void onCheckedChanged(final RadioGroup radioGroup, final int buttonId)
{
for (int i = 0; i < radioGroup.getChildCount(); i++)
{
View v = radioGroup.getChildAt(i);
if(v instanceof ToggleButton)
{
final ToggleButton view = (ToggleButton)v;
view.setChecked(view.getId() == buttonId);
}
}
}
};
onCreateView
中的
RadioGroup wellSleptRg = (RadioGroup)v.findViewById(R.id.howWellSleptRadioGroup);
wellSleptRg.setOnCheckedChangeListener(radioGroupToggleListener);
为什么不赢得听众的触发?