0

ラジオボタンがチェックされているかどうかを確認しようとしていて、理解できないこの奇妙な動作を見つけたときに、結果としていくつかのことを行いました。ラジオグループは PreferenceDialog 内にあると言わざるを得ません。これが問題の唯一の説明です。

RadioGroup colorRG = (RadioGroup)view.findViewById(R.id.colorRG);

         colorRG.setOnCheckedChangeListener(new OnCheckedChangeListener(){

                @Override
                public void onCheckedChanged(RadioGroup group, int checkedId) {
                    Log.w("ColorRG: ", "checkedId" + checkedId);
                    if (checkedId == (R.id.color_box1)){
                        Log.d("ColorRG: ","first if");
                        }
                    if (checkedId == (R.id.color_box1+5)){
                        Log.d("ColorRG: ","second if");
                        }
                    }
                 });

さて、ログを見ると、checkedId の値が 2131165319 で、R.id.color_box1 の値が 2131165314 であることがわかります。明らかに、最初の if には入っていません。2 番目の if ログを示します。

それで、ここで何が起こっているのですか?

誰かが助けてくれることを願っています

編集: xml コードの追加:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <LinearLayout 
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:layout_marginTop="10dp"
        android:gravity="center_horizontal" >

        <ImageView
            android:id="@+id/color_box1"
            android:layout_width="40dp"
            android:layout_height="40dp"
            android:layout_margin="5dp"
            android:contentDescription="@string/selector_descript"
            android:src="@drawable/settings_selector_color" />

        <ImageView
            android:id="@+id/color_box2"
            android:layout_width="40dp"
            android:layout_height="40dp"
            android:layout_margin="5dp"
            android:contentDescription="@string/selector_descript"
            android:src="@drawable/settings_selector_color" />

        <ImageView
            android:id="@+id/color_box3"
            android:layout_width="40dp"
            android:layout_height="40dp"
            android:layout_margin="5dp"
            android:contentDescription="@string/selector_descript"
            android:src="@drawable/settings_selector_color" />

        <ImageView
            android:id="@+id/color_box4"
            android:layout_width="40dp"
            android:layout_height="40dp"
            android:layout_margin="5dp"
            android:contentDescription="@string/selector_descript"
            android:src="@drawable/settings_selector_color" />

    </LinearLayout>

    <RadioGroup
        android:id="@+id/colorRG"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dp"
        android:layout_marginBottom="10dp"
        android:orientation="vertical" >    

        <View
            android:layout_width="match_parent"
            android:layout_height="1dip"
            android:layout_marginLeft="4dip"
            android:layout_marginRight="4dip"
            android:background="?android:attr/dividerVertical"/>

        <RadioButton
            android:id="@+id/color_radio1"
            android:layout_marginLeft="40dp"
            android:paddingLeft="70dp"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="@string/selector_RB1" />

        <View
            android:layout_width="match_parent"
            android:layout_height="1dip"
            android:layout_marginLeft="4dip"
            android:layout_marginRight="4dip"
            android:background="?android:attr/dividerVertical"/>

        <RadioButton
            android:id="@+id/color_radio2"
            android:layout_marginLeft="40dp"
            android:paddingLeft="70dp"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="@string/selector_RB2" />

        <View
            android:layout_width="match_parent"
            android:layout_height="1dip"
            android:layout_marginLeft="4dip"
            android:layout_marginRight="4dip"
            android:background="?android:attr/dividerVertical"/>

        <RadioButton
            android:id="@+id/color_radio3"
            android:layout_marginLeft="40dp"
            android:paddingLeft="70dp"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="@string/selector_RB3" />

         <View
            android:layout_width="match_parent"
            android:layout_height="1dip"
            android:layout_marginLeft="4dip"
            android:layout_marginRight="4dip"
            android:background="?android:attr/dividerVertical"/>

        <RadioButton
            android:id="@+id/color_radio4"
            android:layout_marginLeft="40dp"
            android:paddingLeft="70dp"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="@string/selector_RB4" />
    </RadioGroup>

    <View
        android:layout_width="match_parent"
        android:layout_height="1dip"
        android:layout_marginLeft="4dip"
        android:layout_marginRight="4dip"
        android:background="?android:attr/dividerVertical"/>

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >

         <Button
            android:id="@+id/pincancel_but"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:background="?android:attr/selectableItemBackground"
            android:text="@string/cancelar" />

         <View
            android:layout_width="1dp"
            android:layout_height="match_parent"     
            android:layout_marginBottom="4dip"
            android:background="?android:attr/dividerVertical" />

        <Button
            android:id="@+id/pinok_but"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:background="?android:attr/selectableItemBackground"
            android:text="@string/ok" />
    </LinearLayout>


</LinearLayout>
4

2 に答える 2

1

これを試してみてください

RadioGroup colorRG = (RadioGroup)view.findViewById(R.id.colorRG);    


colorRG.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {

    @Override
    public void onCheckedChanged(RadioGroup radioGroup,
            int radioButtonID) {

if(radioButtonID==colorRg.getCheckedRadioButtonId)
{
Log.i("tt","firstlog"+radioButtonID);//you will get id now
}
             }
    }
});
于 2014-06-28T11:34:01.730 に答える