android典型的选项卡界面利用viewPager+fragment实现

android典型的选项卡界面利用viewPager+fragment实现,实现左右滑动切换界面,相关代码:

package com.example.select.ui;

import com.example.select.R;
import com.example.select.fragment.SelectFragment1;
import com.example.select.fragment.SelectFragment2;
import com.example.select.fragment.SelectFragment3;
import com.example.select.fragment.SelectFragment4;

import android.graphics.Color;
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.ViewPager;
import android.support.v4.view.ViewPager.OnPageChangeListener;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.RadioGroup.OnCheckedChangeListener;

public class MainActivity extends FragmentActivity implements OnCheckedChangeListener,OnPageChangeListener{

	private ViewPager viewPager;
	private FragmentPagerAdapter adapter;
	private RadioGroup rg;
	private RadioButton rb_button1,rb_button2,rb_button3,rb_button4;

	/**
	 * 初始化界面
	 */
	private void setupView(){
//初始化需要滑动的界面 共有4个
		rb_button1 = (RadioButton) findViewById(R.id.rb_button1);
		rb_button2 = (RadioButton) findViewById(R.id.rb_button2);
		rb_button3 = (RadioButton) findViewById(R.id.rb_button3);
		rb_button4 = (RadioButton) findViewById(R.id.rb_button4);

		viewPager = (ViewPager) findViewById(R.id.huado_Pager);
		adapter = new InnerAdapter(getSupportFragmentManager());
		rg = (RadioGroup) findViewById(R.id.rg_select);
		rg.setOnCheckedChangeListener(this);

		viewPager.setAdapter(adapter);
		viewPager.setOnPageChangeListener(this);
	}
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		setupView();
	}

//设置滑动的adapter内部类
	private class InnerAdapter extends FragmentPagerAdapter {

		public InnerAdapter(FragmentManager fm) {
			super(fm);
		}


		@Override
		public Fragment getItem(int arg0) {
<span style="font-size:18px; white-space: pre;">			</span><span style="font-size:18px;">//滑动位置变化的时候需要变化的界面 </span><span style="font-size: 18px;"> arg0表示需要滑动到相应的滑动界面</span>

<span style="font-size:18px;">			Fragment fragment = null;
			switch (arg0) {
			case 0:</span>
<span style="font-size:18px;"><span style="white-space:pre">				</span>//当是第一个界面的时显示 SelectFragment这个界面
				fragment = new SelectFragment1();
				break;
			case 1:
				fragment = new SelectFragment2();
				break;
			case 2:
				fragment = new SelectFragment3();
				break;
			case 3:
				fragment = new SelectFragment4();
				break;

			}
			return fragment;
		}

</span>
<span style="font-size:18px;"><span style="white-space:pre">		</span>//需要显示的界面总数
		@Override
		public int getCount() {
			// TODO Auto-generated method stub
			return 4;
		}

	}

	/**
	 * Pager左右滑动监听器
	 */
	@Override
	public void onPageSelected(int arg0) {
		switch (arg0) {
		case 0:
			rg.check(R.id.rb_button1);
			break;
		case 1:
			rg.check(R.id.rb_button2);
			break;
		case 2:
			rg.check(R.id.rb_button3);
			break;
		case 3:
			rg.check(R.id.rb_button4);
			break;
		}

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

	}


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

	}



	/**
	 * RadioGroup 点击的时候跳转到不同的界面
	 */
	@Override
	public void onCheckedChanged(RadioGroup group, int checkedId) {
		switch(checkedId){
		case R.id.rb_button1:
			viewPager.setCurrentItem(0);
			rb_button1.setTextColor(Color.parseColor("#ffffff"));
			rb_button2.setTextColor(Color.parseColor("#000000"));
			rb_button3.setTextColor(Color.parseColor("#000000"));
			rb_button4.setTextColor(Color.parseColor("#000000"));
			
			break;
		case R.id.rb_button2:
			viewPager.setCurrentItem(1);
			rb_button2.setTextColor(Color.parseColor("#ffffff"));
			rb_button1.setTextColor(Color.parseColor("#000000"));
			rb_button3.setTextColor(Color.parseColor("#000000"));
			rb_button4.setTextColor(Color.parseColor("#000000"));
			break;
		case R.id.rb_button3:
			viewPager.setCurrentItem(2);
			rb_button3.setTextColor(Color.parseColor("#ffffff"));
			rb_button1.setTextColor(Color.parseColor("#000000"));
			rb_button2.setTextColor(Color.parseColor("#000000"));
			rb_button4.setTextColor(Color.parseColor("#000000"));
			break;
		case R.id.rb_button4:
			viewPager.setCurrentItem(3);
			rb_button4.setTextColor(Color.parseColor("#ffffff"));
			rb_button2.setTextColor(Color.parseColor("#000000"));
			rb_button3.setTextColor(Color.parseColor("#000000"));
			rb_button1.setTextColor(Color.parseColor("#000000"));
			break;
		}

	}
}
</span>

下面有完整代码的相关连接:

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值