没有调用带有切换按钮onCheckedChangeListener的RadioGroup

时间:2017-06-08 08:48:32

标签: android android-radiogroup android-togglebutton

这是这个问题的后续问题:

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);

为什么不赢得听众的触发?

0 个答案:

没有答案