gpt4 book ai didi

android - 使用带有radiogroup的viewpager在 fragment 之间切换

转载 作者:行者123 更新时间:2023-11-29 19:46:00 27 4
gpt4 key购买 nike

我有一个带有可滑动 fragment 的 viewpager,还有一个显示选择了哪个 View 的单选框。当我启动应用程序时,第一个单选按钮未被选中,只有在我滑动另一个 View 并返回时才会被选中。我是初学者,所以请分享您的知识。这是我的代码:

Viewpager 适配器:

public class ViewPagerAdapter extends FragmentPagerAdapter {
public static int int_items = 3;

public ViewPagerAdapter(FragmentManager fm) {
super(fm);
}

@Override
public Fragment getItem(int position) {
switch (position) {
case 0:
return new WelcomeOneFragment();
case 1:
return new WelcomeTwoFragment();
case 2:
return new WelcomeThreeFragment();
}
return null;
}

@Override
public int getCount() {
return int_items;
}

带有单选组的 fragment :

public class TabFragment extends BaseFragment implements ViewPager.OnPageChangeListener, View.OnClickListener {
public static ViewPager mViewPager;
private Button mButtonMassage;
private RadioGroup mRadioGroup;

public static TabFragment newInstance() {
return new TabFragment();
}

@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {

View rootView = inflater.inflate(R.layout.fragment_tab, container, false);
initUi(rootView);

return rootView;
}

@Override
public void initUi(View rootView) {
mRadioGroup = (RadioGroup) rootView.findViewById(R.id.radio_group);
mViewPager = (ViewPager) rootView.findViewById(R.id.view_pager);
mButtonMassage = (Button) rootView.findViewById(R.id.buttonMassage);

initListeners();
}

@Override
public void initListeners() {
mButtonMassage.setOnClickListener(this);
mViewPager.addOnPageChangeListener(this);
initData();
}

@Override
public void initData() {
mViewPager.setAdapter(new ViewPagerAdapter(getChildFragmentManager()));
mViewPager.setCurrentItem(0);
}

@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.buttonMassage:
Intent i = new Intent(getActivity(), MassageActivity.class);
startActivity(i);
break;
default:
break;
}
}

@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

}

@Override
public void onPageSelected(int position) {
mRadioGroup.check(mRadioGroup.getChildAt(position).getId());
}

@Override
public void onPageScrollStateChanged(int state) {

}
}

最佳答案

就叫这个

mRadioGroup.check(mRadioGroup.getChildAt(0).getId());

之后

 mViewPager.setCurrentItem(0);

因为 listner 不会在启动时调用,你必须在将适配器设置为 viewpager 后手动设置它

希望它对你有用!! :)

关于android - 使用带有radiogroup的viewpager在 fragment 之间切换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37679347/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com