我所拥有的是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?
答案 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
来获得相同的结果。)