Android - MyViewPagerActivity.java
2016-03-24 18:04
399 查看
package com.example.droid; import java.util.ArrayList; import com.example.droid.util.MyFragment; import android.os.Bundle; import android.app.Activity; import android.app.FragmentTransaction; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentActivity; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentPagerAdapter; import android.support.v4.view.ViewPager; import android.support.v4.view.ViewPager.OnPageChangeListener; import android.util.Log; import android.view.Menu; import android.widget.RadioButton; import android.widget.RadioGroup; import android.widget.RadioGroup.OnCheckedChangeListener; public class MyViewPagerActivity extends FragmentActivity { private ViewPager viewPager; private MyAdapter adapter; private Fragment fragment_1; private Fragment fragment_2; private RadioGroup radioGroup; private OnCheckedChangeListener keyChangeListener = new OnCheckedChangeListener() { @Override public void onCheckedChanged(RadioGroup radioGroup, int checkedId) { Log.i("onChecked", "" + checkedId); int position = 0; switch (checkedId) { case R.id.radio_1: position = 0; break; case R.id.radio_2: position = 1; break; default: break; } viewPager.setCurrentItem(position); } }; private OnPageChangeListener pageChangeListener = new OnPageChangeListener() { @Override public void onPageSelected(int position) { Log.i("onPageChange", "" + position); int checkedId = R.id.radio_1; switch (position) { case 0: checkedId = R.id.radio_1; break; case 1: checkedId = R.id.radio_2; break; default: break; } radioGroup.check(checkedId); } @Override public void onPageScrolled(int arg0, float arg1, int arg2) { } @Override public void onPageScrollStateChanged(int position) { } }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_my_view_pager); init(); } private void init () { viewPager = (ViewPager) findViewById(R.id.viewPager); radioGroup = (RadioGroup) findViewById(R.id.radioGroup); fragment_1 = new MyFragment(); fragment_2 = new MyFragment(); adapter = new MyAdapter(getSupportFragmentManager()); adapter.addFragment(fragment_1); adapter.addFragment(fragment_2); viewPager.setAdapter(adapter); radioGroup.setOnCheckedChangeListener(keyChangeListener); viewPager.setOnPageChangeListener(pageChangeListener); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.my_view_pager, menu); return true; } static class MyAdapter extends FragmentPagerAdapter { ArrayList<Fragment> fragmentList; public MyAdapter(FragmentManager fm) { super(fm); fragmentList = new ArrayList<Fragment>(); // TODO Auto-generated constructor stub } public void addFragment (Fragment fragment) { if (!fragmentList.contains(fragment)) { fragmentList.add(fragment); } } @Override public Fragment getItem(int position) { return fragmentList == null ? null : fragmentList.get(position); } @Override public int getCount() { return fragmentList == null ? 0 : fragmentList.size(); } } }
activity_my_view_pager.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MyViewPagerActivity" > <RadioGroup android:id="@+id/radioGroup" android:orientation="horizontal" android:layout_width="match_parent" android:layout_height="wrap_content" > <RadioButton android:id="@+id/radio_1" android:checked="true" android:button="@null" android:background="@drawable/selector_fragment_1" android:layout_width="wrap_content"/> <RadioButton android:id="@+id/radio_2" android:button="@null" android:background="@drawable/selector_fragment_2" android:layout_width="wrap_content"/> </RadioGroup> <android.support.v4.view.ViewPager android:id="@+id/viewPager" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_below="@id/radioGroup" /> </RelativeLayout>
res/drawable/selector_fragment_1.xml
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android" > <item android:drawable="@drawable/icon_4_n" android:state_checked="false" /> <item android:drawable="@drawable/icon_4_d" android:state_checked="true" /> </selector>
相关文章推荐
- Android五大基本组件
- 改变Android状态栏字体颜色和实现沉浸式状态栏
- Android 仿iOS时间选择器自定义WheelView
- android学习——AndroidManifest.xml清单文件的重要性
- android Activity的onPause()与onResume()
- Android 源码 listview 重用机制 浅析
- Android应用程序组件Activity的"singleTask"
- Android实现计时与倒计时(限时抢购)的几种方法
- Android初试--Android中的ContentProvider(2)
- Android中实现定时器的3种解决方法
- [Android Pro] static 和 Volatile 的区别
- Android 简单封装的例子
- Android自定义控件实战——滚动选择器PickerView
- Android RecyclerView实现列表多选
- Exception_android_导入项目感叹号异常
- Android入门(一)
- 【Android】webview javascript 注入方法
- Android MediaPlayer状态机
- Android Light开发(二) 通知灯调用过程
- Android 监听EditText文本输入 EditText监听事和输入事件