Fragment+ViewPager

来源:互联网 发布:二进制数据转换字符串 编辑:程序博客网 时间:2024/05/19 22:56

public class MainActivity extends FragmentActivity {

private ViewPager pager;private RadioGroup group;@Overrideprotected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    requestWindowFeature(Window.FEATURE_NO_TITLE);    setContentView(R.layout.activity_main);    pager = (ViewPager) findViewById(R.id.view_pager);    group = (RadioGroup) findViewById(R.id.group);    pager.setAdapter(new FragmentPagerAdapter(getSupportFragmentManager()) {        @Override        public int getCount() {            // TODO Auto-generated method stub            return 4;        }        @Override        public Fragment getItem(int arg0) {            Fragment fragment = null;            switch (arg0) {            case 0:                fragment = new Fragment01();                break;            case 1:                fragment = new Fragment02();                break;            case 2:                fragment = new Fragment03();                break;            case 3:                fragment = new Fragment04();                break;            default:                break;            }            return fragment;        }    });    group.setOnCheckedChangeListener(new OnCheckedChangeListener() {        @Override        public void onCheckedChanged(RadioGroup group, int checkedId) {            switch (checkedId) {            case R.id.radio_01:                //设置没有滚动的效果                pager.setCurrentItem(0, false);                break;            case R.id.radio_02:                pager.setCurrentItem(1, false);                break;            case R.id.radio_03:                pager.setCurrentItem(2, false);                break;            case R.id.radio_04:                pager.setCurrentItem(3, false);                break;            default:                break;            }        }    });}

}


public class Fragment01 extends Fragment {
private ViewPager pager;
private int [] arrs;
private LinearLayout layout;
private List imageViews;
private Handler handler = new Handler() {
public void handleMessage(android.os.Message msg) {
if (msg.what == 0) {
pager.setCurrentItem(pager.getCurrentItem() + 1);

            handler.sendEmptyMessageDelayed(0, 2000);        }    };};private ListView listView;@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container,        Bundle savedInstanceState) {    // TODO Auto-generated method stub    View view = inflater.inflate(R.layout.fragment01, container, false);    layout = (LinearLayout) view.findViewById(R.id.linear);    pager = (ViewPager) view.findViewById(R.id.viewPager);    listView = (ListView) view.findViewById(R.id.listView);    return view;}@Overridepublic void onActivityCreated(Bundle savedInstanceState) {    super.onActivityCreated(savedInstanceState);    //    arrs = new int[] {R.drawable.a,R.drawable.b,R.drawable.c,R.drawable.d};    //根据图片的个数,初始化小圆点    initDoc();    FragAdapter01 adapter01 = new FragAdapter01(arrs, getActivity(), handler);    pager.setAdapter(adapter01);    //设置当前显示的图片    pager.setCurrentItem(arrs.length * 100000);    //发送延时消息    handler.sendEmptyMessageDelayed(0, 2000);    List<String> lisst = new ArrayList<String>();    for (int i = 0; i <50; i++) {        lisst.add("我是条目"+i);    }    //给listView设置适配器    listView.setAdapter(new ArrayAdapter<String>(getActivity(), android.R.layout.simple_list_item_1, android.R.id.text1, lisst ));    pager.setOnPageChangeListener(new OnPageChangeListener() {        @Override        public void onPageSelected(int arg0) {            //遍历点的集合 如果是当前页 显示选中的颜色            for (int i = 0; i < imageViews.size(); i++) {                if (i == arg0 % imageViews.size()) {                    imageViews.get(i).setImageResource(R.drawable.shape_01);                }else {                    imageViews.get(i).setImageResource(R.drawable.shape_02);                }            }        }        @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        }    });}private void initDoc() {    //把小点的图片装在集合里面 在使用的时候 改变图片显示红点还是蓝点    imageViews = new ArrayList<ImageView>();    //把线性布局上面所有的图片移除    layout.removeAllViews();    //清空集合    imageViews.clear();    for (int i = 0; i < arrs.length; i++) {        ImageView imageView = new ImageView(getActivity());        if (i == 0) {            imageView.setImageResource(R.drawable.shape_01);//代表选中的图片        }else {            imageView.setImageResource(R.drawable.shape_02);        }        LayoutParams params = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);        params.setMargins(5, 0, 5, 0);        layout.addView(imageView, params);        imageViews.add(imageView);    }}@Overridepublic void onPause() {    handler.removeCallbacksAndMessages(null);    super.onPause();}

}