package com.bwie.fuxi_06a; import java.util.ArrayList; import com.bwie.adapter.MyFragAdapter; import com.bwie.fragment.MyFragment; import android.os.Bundle; import android.app.Activity; import android.graphics.Color; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentActivity; import android.support.v4.app.FragmentManager; import android.support.v4.view.ViewPager; import android.support.v4.view.ViewPager.OnPageChangeListener; import android.util.DisplayMetrics; import android.view.Menu; import android.view.View; import android.view.View.OnClickListener; import android.widget.LinearLayout; import android.widget.RadioButton; import android.widget.RadioGroup; import android.widget.TextView; public class MainActivity extends FragmentActivity { private RadioGroup group; private String[] columns = new String[] { "资讯", "热点", "博客", "推荐" }; private int width; private ViewPager vp; private ArrayList<RadioButton> list_button; private ArrayList<TextView> list_tv; private ArrayList<Fragment> list_frag; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 获取窗口的宽度 DisplayMetrics dm = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(dm); width = dm.widthPixels; // 找控件 findView(); // 向线性布局中添加radiobutton(初始化栏目) setColumn(); //为vp设置数据 setdataForVp(); //为vp设置适配器 FragmentManager fm = getSupportFragmentManager(); vp.setAdapter(new MyFragAdapter(fm, list_frag)); setButtonColor(vp.getCurrentItem()); setYouColor(vp.getCurrentItem()); //为vp设置页面滑动监听事件 setPagerClick(); } private void setPagerClick() { // TODO Auto-generated method stub vp.setOnPageChangeListener(new OnPageChangeListener() { @Override public void onPageSelected(int arg0) { //设置文字颜色 setButtonColor(arg0); //设置游标 setYouColor(arg0); } @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 } }); } protected void setYouColor(int arg0) { // TODO Auto-generated method stub //将当前页面的游标显示 TextView tv = list_tv.get(arg0); tv.setVisibility(View.VISIBLE); //将其他游标隐藏 for(int i=0;i<list_tv.size();i++) { TextView textView = list_tv.get(i); if(textView != tv) { textView.setVisibility(View.INVISIBLE); } } } private void setdataForVp() { list_frag = new ArrayList<Fragment>(); for(int i=0;i<columns.length;i++) { MyFragment myFragment = new MyFragment(); //传值 Bundle b = new Bundle(); b.putString("column", columns[i]); myFragment.setArguments(b); list_frag.add(myFragment); } } private void setColumn() { // TODO Auto-generated method stub //创建集合存放字段 list_button = new ArrayList<RadioButton>(); //创建集合存放游标 list_tv = new ArrayList<TextView>(); for (int i = 0; i < columns.length; i++) { // 创建线性布局 LinearLayout line = new LinearLayout(this); // 设置线性布局的排列方式 line.setOrientation(1); // 1、 向线性布局添加文字 RadioButton button = new RadioButton(this); button.setText(columns[i]); // 去除圆圈 button.setButtonDrawable(getResources().getDrawable( android.R.color.transparent)); // 向线性布局中添加该控件 line.addView(button); list_button.add(button); // 2、向线性布局中添加游标 TextView tv_you = new TextView(this); tv_you.setBackgroundColor(Color.GREEN); //将改游标隐藏 tv_you.setVisibility(View.INVISIBLE); // 将游标添加到线性布局中 line.addView(tv_you); LinearLayout.LayoutParams params = new LinearLayout.LayoutParams( width / 4, LinearLayout.LayoutParams.WRAP_CONTENT); // 最后将线性布局添加到radioGroup中 group.addView(line , params); list_tv.add(tv_you); //为按钮设置点击监听事件 button.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { for(int j=0;j<list_button.size();j++) { RadioButton radioButton = list_button.get(j); if(radioButton == v) { //显示当前页面的vp vp.setCurrentItem(j); } } } }); } } private void findView() { // TODO Auto-generated method stub group = (RadioGroup) findViewById(R.id.group); vp=(ViewPager) findViewById(R.id.vp); } private void setButtonColor(int arg0) { //将当前页面的文字变色 RadioButton radioButton = list_button.get(arg0); radioButton.setTextColor(Color.GREEN); //将其他文字不变 for(int i=0;i<list_button.size();i++) { RadioButton radioButton2 = list_button.get(i); if(radioButton2 != radioButton) { radioButton2.setTextColor(Color.BLACK); } } } }