无线电盒不起作用并给出错误的价值

时间:2014-08-24 07:38:31

标签: android radio-button

我所拥有的是android项目,我有一个活动,它在同一个广播组中包含两个文本视图和两个广播框,我想要做的是当我按下第一个广播框时第二个文本视图是不可见的,当检查另一个单选框时,第一个文本视图是不可见的。

这是我的代码

int selectedId = radioGroup.getCheckedRadioButtonId();
        View radioButton = radioGroup.findViewById(selectedId);
        int idx = radioGroup.indexOfChild(radioButton);
        Log.e("choice",idx+"");
             if(idx==0){
                 textView2.setVisibility(View.INVISIBLE);
                    active=1;
                }
                else if(idx==1){
                     textView.setVisibility(View.INVISIBLE);
                        active=2;
                }

这是我的布局

 <RelativeLayout
                android:id="@+id/relative2"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_alignParentBottom="true"
                android:layout_alignParentLeft="true"
                android:layout_alignParentRight="true"
                android:layout_below="@+id/relative1"
                android:background="@drawable/down"
                 android:focusableInTouchMode="true"
                 android:focusable="true" >
                <TableLayout
        android:id="@+id/tableLayout1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
         >
           <TableRow
            android:id="@+id/tableRow1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="center_horizontal" >

                <TextView
                    android:id="@+id/textView1"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"

                    android:layout_marginBottom="5sp"
                    android:paddingRight="7dp"
                    android:text="الرجاء اختيار اسم العميل "
                    android:textAppearance="?android:attr/textAppearanceLarge"
                    android:textSize="30sp" />

         </TableRow>
          <RadioGroup
        android:id="@+id/radiogroup"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/textView2"
        android:layout_centerHorizontal="true"
        >
           <TableRow
            android:id="@+id/tableRow2"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="right"
            android:layout_marginRight="10sp" >
                <TextView
                           android:id="@+id/textView2"
                           android:layout_width="wrap_content"
                           android:layout_height="wrap_content"
                           android:layout_alignParentRight="true"
                           android:layout_below="@+id/textView1"
                           android:text="الصيدليات" 
                           android:textSize="28sp"/>

                <RadioButton
                    android:id="@+id/radioButton1"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
               />

                   </TableRow>
                      <TableRow
            android:id="@+id/tableRow3"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="center_horizontal"
            android:layout_marginLeft="30sp"
              android:layout_marginRight="30sp">
                  <AutoCompleteTextView android:id="@+id/txtsearch"
                           android:layout_width="fill_parent"
                           android:layout_height="wrap_content"
                           android:textSize="18sp"
                           android:imeOptions="actionDone"
                           android:layout_weight="1"
                          />
                       </TableRow>
                          <TableRow
            android:id="@+id/tableRow4"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="right" 
                android:layout_marginRight="10sp" >
                                 <TextView
                           android:id="@+id/textView3"
                           android:layout_width="wrap_content"
                           android:layout_height="wrap_content"
                           android:layout_alignParentRight="true"
                           android:layout_below="@+id/textView1"
                           android:text="العملاء"
                           android:textSize="28sp" />

                                 <RadioButton
                                     android:id="@+id/radioButton2"
                                     android:layout_width="wrap_content"
                                     android:layout_height="wrap_content"
                            />

                                  </TableRow>
                                      </RadioGroup>

                             <TableRow
            android:id="@+id/tableRow5"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="center_horizontal"
            android:layout_marginLeft="30sp"
              android:layout_marginRight="30sp">
                                      <AutoCompleteTextView android:id="@+id/txtsearch2"
                           android:layout_width="fill_parent"
                           android:layout_height="wrap_content"
                           android:textSize="18sp"
                           android:imeOptions="actionDone"
                           android:layout_weight="1"
                          />
                                      </TableRow>

                                    <TableRow
                                        android:id="@+id/tableRow6"
                                        android:gravity="center_horizontal" 
                                      >

                                        <Button
                                            android:id="@+id/button1"
                                            android:layout_width="20dp"
                                            android:layout_height="wrap_content"
                                            android:layout_marginBottom="20sp"
                                            android:layout_marginTop="15sp"
                                            android:background="#ff9900"
                                            android:text="متابعة"
                                            android:layout_marginLeft="70dp"
                                             android:layout_marginRight="70dp"
                                            android:textSize="28sp" />

                                    </TableRow>

  </TableLayout>                     
    </RelativeLayout>

但我有两个问题,第一个是:两个收音机盒可以同时检查!!!哪个是错的,另一个是当打印idx值时它给了我-1这很奇怪.. can anyone help me?

2 个答案:

答案 0 :(得分:0)

试试这段代码..

 RadioGroup rg = (RadioGroup) findViewById(R.id.radioGroup);


    rg.setOnCheckedChangeListener(new OnCheckedChangeListener() 
    {
        public void onCheckedChanged(RadioGroup group, int checkedId) {
            switch(checkedId){
                case R.id.radio0:
                   textView2.setVisibility(View.INVISIBLE);
                   active=1;
                break;

                case R.id.radio1:
                    textView.setVisibility(View.INVISIBLE);
                    active=2;
                break;



            }


        }
    });

答案 1 :(得分:0)

您的问题是,RadioButton不是RadioGroup的直接子女(他们是TableRow的子女),因此这不会将您的选择限制为1 RadioButton 。更改您的布局,使它们都是RadioGroup下的直接子项(如果您希望它们彼此相同,您可以使用RelativeLayout来获得相同的结果。)