解析xml并展示数据(mainActivity)

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

}
原文地址:https://www.cnblogs.com/8023-itxinde/p/5356911.html