您的位置:首页 > 大数据 > 人工智能

实现raidogroup与fragment+viewpager的交互

2016-02-28 16:41 447 查看
主界面代码

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();

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: