20 ViewPager demo5,6:FragmentAdapter 导航数据

来源:互联网 发布:复活吧我的勇士java 编辑:程序博客网 时间:2024/05/16 14:01

Demo5

文件结构:

这里写图片描述

MainActivity.java

package com.qf.day20_viewpager_demo5;import java.util.ArrayList;import java.util.List;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.view.View;import android.view.View.OnClickListener;import android.widget.LinearLayout;import android.widget.TextView;import com.qf.day20_viewpager_demo5.fragment.MyFragment;public class MainActivity extends FragmentActivity {    private ViewPager viewPager;    private List<Fragment> list;    private TextView[]tvs;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        viewPager = (ViewPager) findViewById(R.id.viewPager);        initTab();        //数据源  Fragment        initData();        //adapter        viewPager.setAdapter(new MyFragmentPagerAdapter(getSupportFragmentManager()));        viewPager.setOnPageChangeListener(new OnPageChangeListener() {            @Override            public void onPageSelected(int arg0) {                // TODO Auto-generated method stub                for(int i=0;i<3;i++){                    tvs[i].setBackgroundColor(Color.BLUE);                }                tvs[arg0].setBackgroundColor(Color.RED);            }            @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            }        });    }    //导航书签    public void initTab() {        tvs = new TextView[3];        LinearLayout layout = (LinearLayout) findViewById(R.id.ll);        for(int i=0;i<3;i++){            tvs[i] = (TextView) layout.getChildAt(i);            tvs[i].setBackgroundColor(Color.BLUE);            tvs[i].setTag(i);            tvs[i].setOnClickListener(new OnClickListener() {                @Override                public void onClick(View v) {                    // TODO Auto-generated method stub                    viewPager.setCurrentItem((Integer)v.getTag());                }            });        }        tvs[0].setBackgroundColor(Color.RED);    }    public void initData() {        list = new ArrayList<Fragment>();        MyFragment myFragment1 = new MyFragment();        Bundle bundle = new Bundle();        bundle.putInt("index", 1);        myFragment1.setArguments(bundle);        MyFragment myFragment2 = new MyFragment();        Bundle bundle1 = new Bundle();        bundle1.putInt("index", 2);        myFragment2.setArguments(bundle1);        MyFragment myFragment3 = new MyFragment();        Bundle bundle2 = new Bundle();        bundle2.putInt("index", 3);        myFragment3.setArguments(bundle2);        list.add(myFragment1);        list.add(myFragment2);        list.add(myFragment3);    }    /**     * 自定义的Adapter     * @author sxy     *     */    public class MyFragmentPagerAdapter extends FragmentPagerAdapter{        public MyFragmentPagerAdapter(FragmentManager fm) {            super(fm);            // TODO Auto-generated constructor stub        }        /**         * 根据指定的下标  返回对应的Fragmengt对象         */        @Override        public Fragment getItem(int arg0) {            // TODO Auto-generated method stub            return list.get(arg0);        }        /**         * Fragment的数量         */        @Override        public int getCount() {            // TODO Auto-generated method stub            return list.size();        }    }}

MyFragment.java

package com.qf.day20_viewpager_demo5.fragment;import com.qf.day20_viewpager_demo5.R;import android.os.Bundle;import android.support.v4.app.Fragment;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.TextView;public class MyFragment extends Fragment {    private TextView tv;    @Override    public View onCreateView(LayoutInflater inflater, ViewGroup container,            Bundle savedInstanceState) {        // TODO Auto-generated method stub        View view = inflater.inflate(R.layout.layout_fragment, container, false);        tv  = (TextView) view.findViewById(R.id.tv);        Bundle bundle = getArguments();        int index = bundle.getInt("index");        switch (index) {        case 1:            tv.setText("新闻");            break;        case 2:            tv.setText("娱乐");            break;        case 3:            tv.setText("段子");            break;        default:            break;        }        return view;    }}

activity_main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"   android:orientation="vertical"    tools:context=".MainActivity" >    <LinearLayout         android:id="@+id/ll"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:orientation="horizontal"        >        <TextView             android:id="@+id/tv_new"            android:layout_width="0dp"            android:layout_height="wrap_content"            android:layout_weight="1"            android:gravity="center"            android:text="新闻"            />        <TextView             android:id="@+id/tv_happy"            android:layout_width="0dp"            android:layout_height="wrap_content"            android:layout_weight="1"             android:gravity="center"            android:text="娱乐"            />        <TextView             android:id="@+id/tv_dz"            android:layout_width="0dp"            android:layout_height="wrap_content"            android:layout_weight="1"             android:gravity="center"            android:text="段子"            />    </LinearLayout>    <android.support.v4.view.ViewPager        android:id="@+id/viewPager"        android:layout_width="match_parent"        android:layout_height="match_parent"        /></LinearLayout>

layout_fragment.xml

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical" >    <TextView         android:id="@+id/tv"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:textSize="20sp"        android:textColor="#f00"        /></LinearLayout>

Demo6

这里写图片描述

MainActivity.java

package com.qf.day20_viewpager_demo5;import java.util.ArrayList;import java.util.List;import android.app.ActionBar;import android.app.ActionBar.Tab;import android.app.ActionBar.TabListener;import android.app.FragmentTransaction;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.view.View;import android.view.View.OnClickListener;import android.widget.LinearLayout;import android.widget.TextView;import com.qf.day20_viewpager_demo5.fragment.MyFragment;public class MainActivity extends FragmentActivity implements TabListener{    private ViewPager viewPager;    private List<Fragment> list;    private TextView[]tvs;    private ActionBar actionBar;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        viewPager = (ViewPager) findViewById(R.id.viewPager);        actionBar = getActionBar();        actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);        actionBar.addTab(actionBar.newTab().setText("新闻").setTabListener(this));        actionBar.addTab(actionBar.newTab().setText("娱乐").setTabListener(this));        actionBar.addTab(actionBar.newTab().setText("段子").setTabListener(this));        //数据源  Fragment        initData();        //adapter        viewPager.setAdapter(new MyFragmentPagerAdapter(getSupportFragmentManager()));        viewPager.setOnPageChangeListener(new OnPageChangeListener() {            @Override            public void onPageSelected(int arg0) {//              // TODO Auto-generated method stub//              for(int i=0;i<3;i++){//                  tvs[i].setBackgroundColor(Color.BLUE);//              }//              //              tvs[arg0].setBackgroundColor(Color.RED);                //ViewPager绑定ActionBar                   actionBar.setSelectedNavigationItem(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            }        });    }//  //导航书签//  public void initTab() {//      tvs = new TextView[3];//      LinearLayout layout = (LinearLayout) findViewById(R.id.ll);//      for(int i=0;i<3;i++){//          tvs[i] = (TextView) layout.getChildAt(i);//          tvs[i].setBackgroundColor(Color.BLUE);//          tvs[i].setTag(i);//          tvs[i].setOnClickListener(new OnClickListener() {//              //              @Override//              public void onClick(View v) {//                  // TODO Auto-generated method stub//                  viewPager.setCurrentItem((Integer)v.getTag());//              }//          });//      }//      tvs[0].setBackgroundColor(Color.RED);//  }    public void initData() {        list = new ArrayList<Fragment>();        MyFragment myFragment1 = new MyFragment();        Bundle bundle = new Bundle();        bundle.putInt("index", 1);        myFragment1.setArguments(bundle);        MyFragment myFragment2 = new MyFragment();        Bundle bundle1 = new Bundle();        bundle1.putInt("index", 2);        myFragment2.setArguments(bundle1);        MyFragment myFragment3 = new MyFragment();        Bundle bundle2 = new Bundle();        bundle2.putInt("index", 3);        myFragment3.setArguments(bundle2);        list.add(myFragment1);        list.add(myFragment2);        list.add(myFragment3);    }    /**     * 自定义的Adapter     * @author sxy     *     */    public class MyFragmentPagerAdapter extends FragmentPagerAdapter{        public MyFragmentPagerAdapter(FragmentManager fm) {            super(fm);            // TODO Auto-generated constructor stub        }        /**         * 根据指定的下标  返回对应的Fragmengt对象         */        @Override        public Fragment getItem(int arg0) {            // TODO Auto-generated method stub            return list.get(arg0);        }        /**         * Fragment的数量         */        @Override        public int getCount() {            // TODO Auto-generated method stub            return list.size();        }    }    @Override    public void onTabReselected(Tab tab, FragmentTransaction ft) {        // TODO Auto-generated method stub    }    @Override    public void onTabSelected(Tab tab, FragmentTransaction ft) {        // TODO Auto-generated method stub        //Tab绑定ViewPager        viewPager.setCurrentItem(tab.getPosition());    }    @Override    public void onTabUnselected(Tab tab, FragmentTransaction ft) {        // TODO Auto-generated method stub    }}

MyFragment.java

package com.qf.day20_viewpager_demo5.fragment;import com.qf.day20_viewpager_demo5.R;import android.os.Bundle;import android.support.v4.app.Fragment;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.TextView;public class MyFragment extends Fragment {    private TextView tv;    @Override    public View onCreateView(LayoutInflater inflater, ViewGroup container,            Bundle savedInstanceState) {        // TODO Auto-generated method stub        View view = inflater.inflate(R.layout.layout_fragment, container, false);        tv  = (TextView) view.findViewById(R.id.tv);        Bundle bundle = getArguments();        int index = bundle.getInt("index");        switch (index) {        case 1:            tv.setText("新闻");            break;        case 2:            tv.setText("娱乐");            break;        case 3:            tv.setText("段子");            break;        default:            break;        }        return view;    }}

activity_main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"   android:orientation="vertical"    tools:context=".MainActivity" >    <android.support.v4.view.ViewPager        android:id="@+id/viewPager"        android:layout_width="match_parent"        android:layout_height="match_parent"        /></LinearLayout>

layout_fragment.xml

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical" >    <TextView         android:id="@+id/tv"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:textSize="20sp"        android:textColor="#f00"        /></LinearLayout>
0 0
原创粉丝点击