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);
}
}
}
}