实现raidogroup与fragment+viewpager的交互

来源:互联网 发布:linux显示文件内容命令 编辑:程序博客网 时间:2024/05/29 03:51

主界面代码

public class MainActivity extends FragmentActivity {

    ViewPager viewPager;
    RadioGroup radioGroup;
    MyViewPagerAdapter adapter;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initViews();

    }
    private void initViews() {
        viewPager = (ViewPager) findViewById(R.id.vp_main);
        radioGroup = (RadioGroup) findViewById(R.id.rg_main);
        adapter = new MyViewPagerAdapter(getSupportFragmentManager());
        viewPager.setAdapter(adapter);
        viewPager.setCurrentItem(1,false);
     
        
        setListeners();
    }
    private void setListeners() {
        //ViewPager添加滑动监听器
        viewPager.setOnPageChangeListener(new OnPageChangeListener() {

            @Override
            public void onPageSelected(int arg0) {
                switch (arg0) {
                case 0:
                    radioGroup.check(R.id.calllog);
                    break;
                case 1:
                    radioGroup.check(R.id.contact);
                    break;
                case 2:
                    radioGroup.check(R.id.sms);
                    break;
                case 3:
                    radioGroup.check(R.id.dialpad);
                    break;
                }
            }

            @Override
            public void onPageScrolled(int arg0, float arg1, int arg2) {
                // TODO Auto-generated method stub

            }

            @Override
            public void onPageScrollStateChanged(int arg0) {
                // TODO Auto-generated method stub

            }
        });
        //RaidoGroup添加选择监听器
        radioGroup.setOnCheckedChangeListener(new OnCheckedChangeListener() {
            
            @Override
            public void onCheckedChanged(RadioGroup group, int checkedId) {
                switch (checkedId) {
                case R.id.calllog:
                    viewPager.setCurrentItem(0,false);
                    break;
                case R.id.contact:
                    viewPager.setCurrentItem(1,false);
                    break;
                case R.id.sms:
                    viewPager.setCurrentItem(2,false);
                    break;
                case R.id.dialpad:
                    viewPager.setCurrentItem(3,false);
                    break;
                }
                
            }
        });
    }

}


布局文件

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <android.support.v4.view.ViewPager
        android:id="@+id/vp_main"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1" >
    </android.support.v4.view.ViewPager>

    <RadioGroup
        android:id="@+id/rg_main"
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:background="@drawable/bottom_bg"
        android:gravity="center_vertical"
        android:orientation="horizontal" >

        <RadioButton
            android:id="@+id/calllog"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:button="@null"
            android:drawableTop="@drawable/calllog_selector"
            android:paddingTop="12dp" />

        <RadioButton
            android:id="@+id/contact"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:button="@null"
            android:checked="true"
            android:drawableTop="@drawable/contact_selector"
            android:paddingTop="12dp" />

        <RadioButton
            android:id="@+id/sms"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:button="@null"
            android:drawableTop="@drawable/sms_selector"
            android:paddingTop="12dp" />

        <RadioButton
            android:id="@+id/dialpad"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:button="@null"
            android:drawableTop="@drawable/dialpad_selector"
            android:paddingTop="12dp" />
    </RadioGroup>

</LinearLayout>

pageradapter适配器代码

public class MyViewPagerAdapter extends FragmentPagerAdapter{
    List<Fragment> fragments;
    public MyViewPagerAdapter(FragmentManager fm) {
        super(fm);
        //初始化fragments
        fragments = new ArrayList<Fragment>();
        //TODO
        fragments.add(new CalllogFragment());
        fragments.add(new ContactFragment());
        fragments.add(new ConversationFragment());
        fragments.add(new keyboardFragment());
    }

    @Override
    public Fragment getItem(int arg0) {
        return fragments.get(arg0);
    }

    @Override
    public int getCount() {
        return fragments.size();
    }

}



1 0
原创粉丝点击