package com.andyidea.tabdemo; import java.util.ArrayList; 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.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.view.Window; import android.widget.CompoundButton; import android.widget.CompoundButton.OnCheckedChangeListener; import android.widget.RadioButton; import android.widget.RadioGroup; import android.widget.TextView; public class MainTabActivity extends FragmentActivity implements OnCheckedChangeListener { RadioGroup main_radio; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.maintabs); main_radio = (RadioGroup) findViewById(R.id.main_radio); ((RadioButton) findViewById(R.id.radio_button0)).setOnCheckedChangeListener(this); ((RadioButton) findViewById(R.id.radio_button1)).setOnCheckedChangeListener(this); ((RadioButton) findViewById(R.id.radio_button2)).setOnCheckedChangeListener(this); ((RadioButton) findViewById(R.id.radio_button3)).setOnCheckedChangeListener(this); ((RadioButton) findViewById(R.id.radio_button4)).setOnCheckedChangeListener(this); vPager = (ViewPager) findViewById(R.id.pager); } @Override protected void onStart() { super.onStart(); Fragment1 f1 = new Fragment1(); Fragment2 f2 = new Fragment2(); Fragment3 f3 = new Fragment3(); Fragment4 f4 = new Fragment4(); Fragment5 f5 = new Fragment5(); fragments.add(f1); fragments.add(f2); fragments.add(f3); fragments.add(f4); fragments.add(f5); vPager.setAdapter(new TabPagerAdapter(getSupportFragmentManager(), fragments)); vPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageSelected(int arg0) { System.out.println(arg0); switch (arg0) { case 0: ((RadioButton) findViewById(R.id.radio_button0)).setChecked(true); break; case 1: ((RadioButton) findViewById(R.id.radio_button1)).setChecked(true); break; case 2: ((RadioButton) findViewById(R.id.radio_button2)).setChecked(true); break; case 3: ((RadioButton) findViewById(R.id.radio_button3)).setChecked(true); break; case 4: ((RadioButton) findViewById(R.id.radio_button4)).setChecked(true); break; } } @Override public void onPageScrolled(int arg0, float arg1, int arg2) { } @Override public void onPageScrollStateChanged(int arg0) { } }); } ArrayList<Fragment> fragments = new ArrayList<Fragment>(); ViewPager vPager; /** * set ҳ��1~5 * * @param i */ public void setPager(int i) { vPager.setCurrentItem(i - 1); } @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { if (isChecked) { switch (buttonView.getId()) { case R.id.radio_button0: setPager(1); break; case R.id.radio_button1: setPager(2); break; case R.id.radio_button2: setPager(3); break; case R.id.radio_button3: setPager(4); break; case R.id.radio_button4: setPager(5); break; } } } class TabPagerAdapter extends FragmentPagerAdapter { ArrayList<Fragment> fragments; public TabPagerAdapter(FragmentManager fm, ArrayList<Fragment> frags) { super(fm); this.fragments = frags; } @Override public Fragment getItem(int pos) { return fragments.get(pos); } @Override public int getCount() { return fragments.size(); } } /** * Ƭ�λ��� * * @author Liang * */ public static class BaseFragment extends Fragment { } public static class Fragment1 extends BaseFragment { @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View v = inflater.inflate(R.layout.main, container, false); TextView text = (TextView) v.findViewById(R.id.text); text.setText("1"); return v; } } public static class Fragment2 extends BaseFragment { @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View v = inflater.inflate(R.layout.main, container, false); TextView text = (TextView) v.findViewById(R.id.text); text.setText("2"); return v; } } public static class Fragment3 extends BaseFragment { @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View v = inflater.inflate(R.layout.main, container, false); TextView text = (TextView) v.findViewById(R.id.text); text.setText("3"); return v; } } public static class Fragment4 extends BaseFragment { @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View v = inflater.inflate(R.layout.main, container, false); TextView text = (TextView) v.findViewById(R.id.text); text.setText("4"); return v; } } public static class Fragment5 extends BaseFragment { @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View v = inflater.inflate(R.layout.main, container, false); TextView text = (TextView) v.findViewById(R.id.text); text.setText("5"); return v; } } }