XML:
` <RadioGroup
android:id="@+id/note_rg"
android:layout_width="match_parent"
android:background="@color/blue"
android:layout_height="@dimen/dp_45"
android:orientation="horizontal">
<RadioButton
android:id="@+id/note_down_order"
android:layout_width="@dimen/dp_80"
android:layout_height="@dimen/dp_32"
android:layout_marginLeft="@dimen/dp_110"
android:layout_gravity="center"
android:background="@drawable/order_select"
android:button="@null"
android:gravity="center"
android:text="线下订单" />
<RadioButton
android:id="@+id/note_up_order"
android:layout_width="@dimen/dp_80"
android:layout_gravity="center"
android:gravity="center"
android:layout_height="@dimen/dp_32"
android:background="@drawable/order_select"
android:button="@null"
android:text="线上订单" />
</RadioGroup>`
解决的办法:
- 存在多个radiobutton时不能使用同一个id
- 在使用viewpager监听时,第一个RadioButton不能在选择之前就设置为true。当点击第二个的时候,第一个radiobutton就已经是默认的。(本人错误的地方)
java代码:
//RadopGroup监听
noteRg.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup radioGroup, int i) {
switch (i) {
case R.id.note_down_order://线下订单
noteVp.setCurrentItem(0);
break;
case R.id.note_up_order://线上订单
noteVp.setCurrentItem(1);
break;
}
}
});
//viewpager监听
noteVp.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int i, float v, int i1) {
}
@Override
public void onPageSelected(int i) {
==noteDownOrder.setChecked(true);==
switch (i){
case 0:
noteDownOrder.setChecked(true);
break;
case 1:
noteUpOrder.setChecked(true);
break;
}
}
@Override
public void onPageScrollStateChanged(int i) {
}
});
//noteDownOrder.setChecked(true);