Java 作为循环页面指示器的无线电组

Java 作为循环页面指示器的无线电组,java,android,android-viewpager,radio-group,viewpagerindicator,Java,Android,Android Viewpager,Radio Group,Viewpagerindicator,我尝试使用RadioGroup作为循环页面指示器。问题在于RadioGroup.OnCheckedChangeListener。调用onPageSelected时,它似乎将其称为self。但是,我希望它能够工作,反之亦然,即当我选择一个单选按钮时,它应该根据提供的数组索引的位置更改视图。然而,当我更改单选按钮上的检查时,似乎从来没有调用过onCheckedChange,所以onCheckedChange从来没有触发 public class MainActivity extends Activi

我尝试使用RadioGroup作为循环页面指示器。问题在于RadioGroup.OnCheckedChangeListener。调用onPageSelected时,它似乎将其称为self。但是,我希望它能够工作,反之亦然,即当我选择一个单选按钮时,它应该根据提供的数组索引的位置更改视图。然而,当我更改单选按钮上的检查时,似乎从来没有调用过onCheckedChange,所以onCheckedChange从来没有触发

public class MainActivity extends Activity implements RadioGroup.OnCheckedChangeListener, OnPageChangeListener {

    ViewPager mImagePager;
    ImagePagerAdapter mPagerAdapter;
    RadioGroup mPageIndicator;
    boolean swipeChange = false;


    int[] mRadioButtonIds = new int[] { R.id.radio0, R.id.radio1, R.id.radio2, R.id.radio3, R.id.radio4 };

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initComponents();
        mPageIndicator.setOnCheckedChangeListener(this);
        mImagePager.setAdapter(mPagerAdapter);
        mImagePager.setOnPageChangeListener(this);
    }

    /**
     * 
     */
    private void initComponents() {
        mPageIndicator  = (RadioGroup) findViewById(R.id.radioGroup1);
        mImagePager     = (ViewPager) findViewById(R.id.imgPager);
        mPagerAdapter   = new ImagePagerAdapter();
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.activity_main, menu);
        return true;
    }

    @Override
    public void onPageScrollStateChanged(int arg0) {

    }

    @Override
    public void onPageScrolled(int arg0, float arg1, int arg2) {

    }

    @Override
    public void onPageSelected(int pSelectedPagePosition) {
        swipeChange = true;
        mPageIndicator.check(mRadioButtonIds[pSelectedPagePosition]);
    }

    @Override
    public void onCheckedChanged(RadioGroup group, int checkedId) {
        if (!swipeChange) {
            int itemPosition = Arrays.asList(mRadioButtonIds).indexOf(checkedId);
            mImagePager.setCurrentItem(itemPosition, true);
            swipeChange = false;
        }
    }

}
注意:我不想使用任何第三方代码/库来创建自定义循环页面指示器


谁能在这里指出一个错误吗。放射组不工作有什么原因吗

我忘了看文档了