ViewPage第四课与Fragment合作

在viewpage第三课的基础上修改:

第一步:创建四个继承Fragment的类Home_Fragment,Time_Fragment,Message_Fragment,Setting_Fragment

package com.example.viewpage_fragment;

import com.example.viewpage_test.R;
import android.os.Bundle;

import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
public class Home_Fragement extends Fragment{
	@Override
	public View onCreateView(LayoutInflater inflater, ViewGroup container,
			Bundle savedInstanceState) {
		//这里可以写控制界面的逻辑处理的代码
		return inflater.inflate(R.layout.page01, null);
	}
}

在ManagerFragmentActivity中

更改适配器使用FragmentPagerAdapter适配器

具体如下:

package com.example.viewpage_fragment;
import java.util.ArrayList;
import java.util.List;
import com.example.viewpage_test.MainActivity.InnerPagerAdapter;
import com.example.viewpage_test.R;
import android.app.Activity;
import android.os.Bundle;
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.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v4.view.ViewPager.OnPageChangeListener;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.RadioGroup;
import android.widget.RadioGroup.OnCheckedChangeListener;

public class ManagerFragmentActivity extends FragmentActivity{
	/*
	 * Viewpage控件
	 */
	private ViewPager viewpager;
	/*
	 * ViewPage中的Fragment的List集合
	 */
	private List<Fragment> fragments;
	/*
	 * ViewPage每个child view 
	 */
	private List<View> children;
	/**
	 * Veiwpage的标题
	 */
	private List<String> titles;
	private RadioGroup tab;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		viewpager = (ViewPager) findViewById(R.id.vp_viewpage);
		tab = (RadioGroup) findViewById(R.id.rg_tab);

		//viewpage容纳的的界面的集合
		children = new ArrayList<View>();
		children.add(LayoutInflater.from(this).inflate(R.layout.page01, null));
		children.add(getLayoutInflater().inflate(R.layout.page02, null));
		children.add(getLayoutInflater().inflate(R.layout.page03, null));
		children.add(getLayoutInflater().inflate(R.layout.page04, null));
		//每个界面的标题集合
//		titles = new ArrayList<String>();
//		titles.add("page01");
//		titles.add("page02");
//		titles.add("page03");
//		titles.add("page04");
		//fragments的
		fragments = new ArrayList<Fragment>();
		fragments.add(new Home_Fragement());
		fragments.add(new Time_Fragement());
		fragments.add(new Message_Fragement());
		fragments.add(new Setting_Fragement());
		//第一步添加适配器,使用pageAdapter管理子级View对象
		viewpager.setAdapter(new InnerFragmentPagerAdapter(getSupportFragmentManager()));
		//第二步为tab添加监听器,监听点击事件,得到点击是哪个按钮,根据按钮位置索引,设置viewpage当前要显示的是哪个页面
		tab.setOnCheckedChangeListener(new InnerOnCheckedChangeListener());
		//为ViewPage添加监听器,监听,当viewpage滑动时页面切换选中的是哪个界面,得到这个界面的位置索引,根据这个位置设置tab按钮的选择状态
		viewpager.setOnPageChangeListener(new InnerOnPageChangeListener());

	}
	private class InnerOnPageChangeListener implements OnPageChangeListener{

		@Override
		public void onPageScrolled(int position, float positionOffset,
				int positionOffsetPixels) {
			// 当这个页面滚动是
		}

		@Override
		public void onPageSelected(int position) {
			// 当已经选中这个界面时监听事件
			switch (position) {
			case 0:
				tab.check(R.id.btn_Home);
				break;
			case 1:
				tab.check(R.id.btn_Time);

				break;
			case 2:
				tab.check(R.id.btn_Message);

				break;
			case 3:
				tab.check(R.id.btn_Settings);

				break;

			default:
				break;
			}

		}

		@Override
		public void onPageScrollStateChanged(int state) {
			//滚动的状态发生改变时

		}

	}
	private class InnerOnCheckedChangeListener implements OnCheckedChangeListener{

		@Override
		public void onCheckedChanged(RadioGroup group, int checkedId) {
			// TODO Auto-generated method stub


			switch (checkedId) {
			case R.id.btn_Home:
				viewpager.setCurrentItem(0);//设置当前显示的的界面是哪一个

				break;
			case R.id.btn_Time:
				viewpager.setCurrentItem(1);

				break;
			case R.id.btn_Message:
				viewpager.setCurrentItem(2);

				break;


			case R.id.btn_Settings:
				viewpager.setCurrentItem(3);

				break;

			default:
				break;
			}
		}
	}
	public class InnerFragmentPagerAdapter extends FragmentPagerAdapter{


		public InnerFragmentPagerAdapter(FragmentManager fm) {
			super(fm);
			// TODO Auto-generated constructor stub
		}

		@Override
		public Fragment getItem(int position) {
			// TODO Auto-generated method stub
			return fragments.get(position);
		}

		@Override
		public int getCount() {
			// TODO Auto-generated method stub
			return fragments.size();
		}

	}

}



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值