模拟题

//activity_main

<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/drlayout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.example.dibu.MainActivity">

    <com.hjm.bottomtabbar.BottomTabBar
        android:id="@+id/bottomTabBar"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_alignParentBottom="true"></com.hjm.bottomtabbar.BottomTabBar>

    <RelativeLayout
        android:id="@+id/rel"
        android:layout_width="240dp"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        android:background="#ffff00">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="vertical">

            <ImageView
                android:id="@+id/img"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:onClick="imageclose"
                android:src="@drawable/face3" />

            <ListView
                android:id="@+id/lv"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_below="@id/img"
                android:layout_gravity="center"
                android:layout_marginTop="200dp"></ListView>
        </LinearLayout>


    </RelativeLayout>


</android.support.v4.widget.DrawerLayout>
//frag1
<?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">

    <com.handmark.pulltorefresh.library.PullToRefreshScrollView
        android:id="@+id/scroll"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="vertical">

            <ImageView
                android:id="@+id/iv"
                android:layout_width="match_parent"
                android:layout_height="250dp"
                android:src="@mipmap/ic_launcher" />

            <com.example.dibu.MyListView
                android:id="@+id/mlv"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:numColumns="2"></com.example.dibu.MyListView>
        </LinearLayout>
    </com.handmark.pulltorefresh.library.PullToRefreshScrollView>


</LinearLayout>
//frag2
<?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">


    <q.rorbin.verticaltablayout.VerticalTabLayout
        android:id="@+id/vtp"
        android:layout_width="100dp"
        android:layout_height="match_parent"></q.rorbin.verticaltablayout.VerticalTabLayout>

    <android.support.v4.view.ViewPager
        android:id="@+id/vtbvp"
        android:layout_width="match_parent"
        android:layout_height="match_parent"></android.support.v4.view.ViewPager>
</LinearLayout>

//frag3
 
<?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">

    <android.support.design.widget.TabLayout
        android:id="@+id/tab"
        android:layout_width="match_parent"
        android:layout_height="40dp"></android.support.design.widget.TabLayout>

    <android.support.v4.view.ViewPager
        android:id="@+id/vp"
        android:layout_width="match_parent"
        android:layout_height="match_parent"></android.support.v4.view.ViewPager>
</LinearLayout>
//frag4

<?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">

    <TextView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:gravity="center"
        android:text="购物车"
        android:textColor="#f00" />

</LinearLayout>
item

<?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:gravity="center"
    android:orientation="vertical">

    <ImageView
        android:id="@+id/img"
        android:layout_width="100dp"
        android:layout_height="100dp" />

    <TextView
        android:id="@+id/tv_title"
        android:layout_width="100dp"
        android:layout_height="50dp"
        android:gravity="center" />


</LinearLayout>
//item1

<?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">

    <TextView
        android:id="@+id/tv_title"
        android:layout_width="match_parent"
        android:layout_height="100dp"
        android:gravity="center" />

</LinearLayout>
item2

<?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="horizontal">

    <ImageView
        android:id="@+id/img"
        android:layout_width="100dp"
        android:layout_height="100dp" />

    <TextView
        android:id="@+id/tv_title"
        android:layout_width="match_parent"
        android:layout_height="100dp"
        android:gravity="center" />

</LinearLayout>
//page2

<?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">


    <com.example.dibu.MyListView
        android:id="@+id/mlv"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:numColumns="3"></com.example.dibu.MyListView>
</LinearLayout>
//MainActivity

package com.example.dibu;

//com.hjm:BottomTabBar:1.1.1

import android.graphics.Color;
import android.os.Bundle;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.RelativeLayout;

import com.example.dibu.Frag.Fragment01;
import com.example.dibu.Frag.Fragment02;
import com.example.dibu.Frag.Fragment03;
import com.example.dibu.Frag.Fragment04;
import com.example.dibu.Frag.Fragment05;
import com.hjm.bottomtabbar.BottomTabBar;

import java.util.ArrayList;
import java.util.List;

public class MainActivity extends AppCompatActivity {

    private BottomTabBar bottomTabBar;
    private DrawerLayout drawerLayout;
    private ListView listView;
    private RelativeLayout rel;
    private List<String> lists = new ArrayList<String>();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        drawerLayout = (DrawerLayout) findViewById(R.id.drlayout);

        listView = (ListView) findViewById(R.id.lv);
        rel = (RelativeLayout) findViewById(R.id.rel);
        drawerLayout.openDrawer(rel);

        //drawerLayout

        lists.add("个人设置");
        lists.add("缓存");
        lists.add("夜间模式");
        lists.add("配置");
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, lists);
        listView.setAdapter(adapter);
        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                //关闭侧滑菜单
                drawerLayout.closeDrawer(rel);
                drawerLayout.openDrawer(rel);//打开侧滑菜单
                //设置参数
//                Content content = new Content();
//                Bundle bundle = new Bundle();
//                bundle.putString("value", lists.get(position));
//                content.setArguments(bundle);
                //切换fragment
                //getSupportFragmentManager().beginTransaction().replace(R.id.fcontent, content).commit();
            }
        });
        drawerLayout.setDrawerListener(new DrawerLayout.DrawerListener() {


            //slideOffset:侧滑菜单 宽度的像素值
            @Override
            public void onDrawerSlide(View drawerView, float slideOffset) {


            }


            @Override
            public void onDrawerOpened(View drawerView) {
                Log.d("zzz", "open");


            }


            @Override
            public void onDrawerClosed(View drawerView) {
                Log.d("zzz", "close");
            }


            @Override
            public void onDrawerStateChanged(int newState) {
                Log.d("zzz", "状态改变:" + newState);


            }
        });

        bottomTabBar = (BottomTabBar) findViewById(R.id.bottomTabBar);
        bottomTabBar.init(getSupportFragmentManager())
                .setImgSize(40, 40)
                .setFontSize(15)
                .setTabPadding(4, 6, 10)
                .setChangeColor(Color.RED, Color.DKGRAY)
                .addTabItem("首页", R.drawable.abc, Fragment01.class)
                .addTabItem("分类", R.drawable.abc, Fragment02.class)
                .addTabItem("发现", R.drawable.abc, Fragment03.class)
                .addTabItem("购物车", R.drawable.abc, Fragment04.class)
                .addTabItem("我的", R.drawable.abc, Fragment05.class)
                .isShowDivider(false)
                .setOnTabChangeListener(new BottomTabBar.OnTabChangeListener() {
                    @Override
                    public void onTabChange(int position, String name) {

                    }
                });
    }

    public void imageclose(View v) {
        drawerLayout.closeDrawer(rel);
    }
}
//MyListView

package com.example.dibu;

import android.content.Context;
import android.util.AttributeSet;
import android.widget.GridView;

public class MyListView extends GridView {

    public MyListView(Context context) {
        super(context);
    }

    public MyListView(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    public MyListView(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
    }

    @Override
    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
        int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2, MeasureSpec.AT_MOST);
        super.onMeasure(widthMeasureSpec, expandSpec);
    }
}
//MImageLoader

package com.example.dibu.Utils;

import android.content.Context;
import android.widget.ImageView;

import com.youth.banner.loader.ImageLoader;

public class MImageLoader extends ImageLoader {
    @Override
    public void displayImage(Context context, Object path, ImageView imageView) {

        com.nostra13.universalimageloader.core.ImageLoader instance = com.nostra13.universalimageloader.core.ImageLoader.getInstance();
        instance.displayImage((String) path, imageView);
    }
}
//Frag1

package com.example.dibu.Frag;

import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.ScrollView;

import com.example.dibu.Adapter.MyAdapter;
import com.example.dibu.Bean.Result;
import com.example.dibu.MyListView;
import com.example.dibu.R;
import com.example.dibu.Utils.MyTask;
import com.google.gson.Gson;
import com.handmark.pulltorefresh.library.ILoadingLayout;
import com.handmark.pulltorefresh.library.PullToRefreshBase;
import com.handmark.pulltorefresh.library.PullToRefreshScrollView;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.youth.banner.Banner;

import java.util.ArrayList;
import java.util.List;


public class Fragment01 extends Fragment {
    private PullToRefreshScrollView rsv;
    private MyListView mlv;
    private Banner banner;
    private List<String> list = new ArrayList<>();
    private int pageIndex = 0;
    private ArrayList<Result.DataEntity> lists = new ArrayList<Result.DataEntity>();
    private MyAdapter adapter;
    private ImageView iv;
    Handler handler = new Handler() {
        @Override
        public void handleMessage(Message msg) {
            super.handleMessage(msg);
            Log.e("这是第", msg.what + "个");
            ImageLoader.getInstance().displayImage(list.get(msg.what), iv);
        }
    };

    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View v = View.inflate(getContext(), R.layout.frag1, null);
        rsv = (PullToRefreshScrollView) v.findViewById(R.id.scroll);
        mlv = (MyListView) v.findViewById(R.id.mlv);
        iv = (ImageView) v.findViewById(R.id.iv);
//        banner = (Banner) v.findViewById(R.id.banner);

//        banner.setImageLoader(new MImageLoader());
//        //设置含有图片路径的集合
//        banner.setImages(list);
//        //设置延迟时间
//        banner.setDelayTime(3000);
//        //是否自动轮播
//        banner.isAutoPlay(true);
//        //开启
//        banner.start();
//
//        //请求数据
        requestData();
//        //初使化refreshScrollView
        intRefreshScrollView();
        initImage();
        return v;
    }

    private void initImage() {
        list.add("https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1505151721118&di=649c9a43aed72fbc4d99ec1a031510c6&imgtype=0&src=http%3A%2F%2Fimg.zcool.cn%2Fcommunity%2F015c7d574b9f8f6ac72525aee98351.jpg");
        list.add("https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1505151956771&di=0eb6f306991d24b67a13ceb336f80102&imgtype=0&src=http%3A%2F%2Fi0.hdslb.com%2Fbfs%2Farchive%2F00613def3f1beb7a35ae136341be2b589bc46a2d.jpg_320x200.jpg");
        list.add("https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1505151847685&di=c7a4b5d08ec43fa629bcb690039a7629&imgtype=0&src=http%3A%2F%2Fattimg.dospy.com%2Fimg%2Fday_080625%2F20080625_2e91a10c444877e88827vri2ZKdGMvQo.jpg");
        list.add("https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1505151825129&di=70bf74b87d8a15cb91a2d79f15ed0eaf&imgtype=0&src=http%3A%2F%2Fattimg.dospy.com%2Fimg%2Fday_081016%2F20081016_fee215664d5740e56c13E2YB8giERFEX.jpg");
        list.add("https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1505746504&di=930c4d677a02328a142d6fa85ed14580&imgtype=jpg&er=1&src=http%3A%2F%2Fattimg.dospy.com%2Fimg%2Fday_090113%2F20090113_6ac58b42bea94f0b318e1B6BZb5lPZl5.jpg");

        new Thread() {
            @Override
            public void run() {
                super.run();
                int i = 0;
                while (true) {
                    handler.sendEmptyMessage(i);
                    try {
                        sleep(3000);
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                    i++;
                    if (i == list.size()) {
                        i = 0;
                    }
                }
            }
        }.start();
    }

    private void intRefreshScrollView() {
        //1.设置模式
        rsv.setMode(PullToRefreshBase.Mode.BOTH);

        //2.通过调用getLoadingLayoutProxy方法,设置下拉刷新状况布局中显示的文字 ,第一个参数为true,代表下拉刷新
        ILoadingLayout headLables = rsv.getLoadingLayoutProxy(true, false);
        headLables.setPullLabel("下拉刷新");
        headLables.setRefreshingLabel("正在刷新");
        headLables.setReleaseLabel("松开刷新");

        //2.设置上拉加载底部视图中显示的文字,第一个参数为false,代表上拉加载更多
        ILoadingLayout footerLables = rsv.getLoadingLayoutProxy(false, true);
        footerLables.setPullLabel("上拉加载");
        footerLables.setRefreshingLabel("正在载入...");
        footerLables.setReleaseLabel("松开加载更多");

        //3.设置监听事件
        rsv.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ScrollView>() {
            @Override
            public void onPullDownToRefresh(PullToRefreshBase<ScrollView> refreshView) {

                addToTop();
                refreshComplete();

            }

            @Override
            public void onPullUpToRefresh(PullToRefreshBase<ScrollView> refreshView) {
                addToBottom();
                refreshComplete();

            }
        });
    }

    public void refreshComplete() {
        new Handler().postDelayed(new Runnable() {
            @Override
            public void run() {
                rsv.onRefreshComplete();
            }
        }, 1000);
    }

    public void addToBottom() {
        pageIndex = pageIndex + 20;
        MyTask myTask = new MyTask(new MyTask.Icallbacks() {
            @Override
            public void updateUiByjson(String jsonstr) {
                Gson gson = new Gson();
                Result result = gson.fromJson(jsonstr, Result.class);

                //添加到集合中
                lists.addAll(result.getData());
                //设置适配器
                setAdapter();

            }
        });
        myTask.execute("http://www.93.gov.cn/93app/data.do?channelId=0&startNum=" + pageIndex);
    }

    public void addToTop() {
        MyTask myTask = new MyTask(new MyTask.Icallbacks() {
            @Override
            public void updateUiByjson(String jsonstr) {
                Gson gson = new Gson();
                Result result = gson.fromJson(jsonstr, Result.class);
                //清空集合
                lists.clear();
                //添加到集合中
                lists.addAll(0, result.getData());
                //设置适配器
                setAdapter();

            }
        });
        myTask.execute("http://www.93.gov.cn/93app/data.do?channelId=0&startNum=0");

    }


    private void requestData() {
        MyTask myTask = new MyTask(new MyTask.Icallbacks() {
            @Override
            public void updateUiByjson(String jsonstr) {
                Gson gson = new Gson();
                Result result = gson.fromJson(jsonstr, Result.class);
                lists.addAll(result.getData());
                setAdapter();
            }
        });
        myTask.execute("http://www.93.gov.cn/93app/data.do?channelId=0&startNum=0");
    }

    public void setAdapter() {
        if (adapter == null) {
            adapter = new MyAdapter(lists, getActivity());
            mlv.setAdapter(adapter);

        } else {
            adapter.notifyDataSetChanged();
        }
    }
}
//Frag2

package com.example.dibu.Frag;

import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.support.v4.view.ViewPager;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

import com.example.dibu.Adapter.MyPager;
import com.example.dibu.R;

import java.util.ArrayList;
import java.util.List;

import q.rorbin.verticaltablayout.VerticalTabLayout;


public class Fragment02 extends Fragment {
    private VerticalTabLayout tab;
    private ViewPager vp;
    private List<String> tabs = new ArrayList<>();

    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View v = View.inflate(getContext(), R.layout.frag2, null);
        tab = (VerticalTabLayout) v.findViewById(R.id.vtp);
        vp = (ViewPager) v.findViewById(R.id.vtbvp);
        tabs.add("箱包手袋");
        tabs.add("美妆个护");
        tabs.add("钟表珠宝");
        tabs.add("手机数码");
        tabs.add("电脑办公");
        tabs.add("家用电器");
        tabs.add("食品生鲜");
        tabs.add("酒水饮料");
        tabs.add("母婴童装");

        vp.setAdapter(new MyPager(getChildFragmentManager(), tabs));
        tab.setupWithViewPager(vp);
	vp.setOffscreenPageLimit(tabs.size());
return v; }}
//Frag3

package com.example.dibu.Frag;

import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.design.widget.TabLayout;
import android.support.v4.app.Fragment;
import android.support.v4.view.ViewPager;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

import com.example.dibu.Adapter.MyPagerAdapter;
import com.example.dibu.R;

import java.util.ArrayList;
import java.util.List;


public class Fragment03 extends Fragment {
    private TabLayout tab;
    private ViewPager vp;
    private List<String> tabs = new ArrayList<>();

    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View v = View.inflate(getContext(), R.layout.frag3, null);
        tab = (TabLayout) v.findViewById(R.id.tab);
        vp = (ViewPager) v.findViewById(R.id.vp);
        tabs.add("动态");
        tabs.add("热门");
        tabs.add("发现");
        vp.setAdapter(new MyPagerAdapter(getChildFragmentManager(), tabs));
        tab.setupWithViewPager(vp);
        return v;
    }
}
//Frag4

package com.example.dibu.Frag;

import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

import com.example.dibu.R;


public class Fragment04 extends Fragment {
    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View v = View.inflate(getContext(), R.layout.frag4, null);
        return v;
    }
}
//Page2Frag

package com.example.dibu.Frag;

import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

import com.example.dibu.Adapter.MyAdapter;
import com.example.dibu.Bean.Result;
import com.example.dibu.MyListView;
import com.example.dibu.R;
import com.example.dibu.Utils.MyTask;
import com.google.gson.Gson;
import com.handmark.pulltorefresh.library.PullToRefreshScrollView;

import java.util.ArrayList;


public class Page2Frag extends Fragment {

    private PullToRefreshScrollView rsv;
    private MyListView mlv;
    private int pageIndex = 0;
    private ArrayList<Result.DataEntity> lists = new ArrayList<Result.DataEntity>();
    private MyAdapter adapter;

    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View v = View.inflate(getContext(), R.layout.page2, null);
        mlv = (MyListView) v.findViewById(R.id.mlv);
        requestData();
        return v;
    }


    private void requestData() {
        MyTask myTask = new MyTask(new MyTask.Icallbacks() {
            @Override
            public void updateUiByjson(String jsonstr) {
                Gson gson = new Gson();
                Result result = gson.fromJson(jsonstr, Result.class);
                lists.addAll(result.getData());
                setAdapter();
            }
        });
        myTask.execute("http://www.93.gov.cn/93app/data.do?channelId=0&startNum=12");
    }

    public void setAdapter() {
        if (adapter == null) {
            adapter = new MyAdapter(lists, getActivity());
            mlv.setAdapter(adapter);

        } else {
            adapter.notifyDataSetChanged();
        }
    }
}
//RmFrag

package com.example.dibu.Frag;

import android.os.Bundle;
import android.os.Handler;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

import com.bawei.wzq.wzlibrary.view.XListView;
import com.example.dibu.Adapter.MyLvAdapter;
import com.example.dibu.Bean.Results;
import com.example.dibu.R;
import com.example.dibu.Utils.MyTask;
import com.google.gson.Gson;

import java.util.ArrayList;
import java.util.List;

public class RmFrag extends Fragment {
    private View v;
    private XListView xlv;
    private int pageIndex = 1;
    private List<Results.ResultsEntity> lists = new ArrayList<>();
    private MyLvAdapter lvAdapter;

    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        v = View.inflate(getActivity(), R.layout.count, null);
        xlv = (XListView) v.findViewById(R.id.xlv);
        xlv.setPullRefreshEnable(true);
        xlv.setPullLoadEnable(true);
        xlv.setXListViewListener(new XListView.IXListViewListener() {
            @Override
            public void onRefresh() {

                pageIndex = 1;

                MyTask mytask = new MyTask(new MyTask.Icallbacks() {
                    @Override
                    public void updateUiByjson(String jsonstr) {
                        Gson gson = new Gson();
                        Results result = gson.fromJson(jsonstr, Results.class);
                        //要显示的数据-添加到最前面
                        lists.addAll(0, result.getResults());
                        //设置适配器
                        setAdapter();

                        //关闭视图
                        new Handler().postDelayed(new Runnable() {
                            @Override
                            public void run() {
                                xlv.stopRefresh();
                            }
                        }, 1000);
                    }
                });
                mytask.execute("http://gank.io/api/data/Android/10/" + pageIndex);


            }

            @Override
            public void onLoadMore() {
                pageIndex++;

                MyTask mytask = new MyTask(new MyTask.Icallbacks() {
                    @Override
                    public void updateUiByjson(String jsonstr) {
                        Gson gson = new Gson();
                        Results result = gson.fromJson(jsonstr, Results.class);
                        //要显示的数据
                        lists.addAll(result.getResults());
                        //设置适配器
                        setAdapter();

                        //关闭视图
                        new Handler().postDelayed(new Runnable() {
                            @Override
                            public void run() {
                                xlv.stopLoadMore();

                            }
                        }, 1000);
                    }
                });
                mytask.execute("http://gank.io/api/data/Android/10/" + pageIndex);

            }
        });

        return v;
    }

    public void setAdapter() {
        if (lvAdapter == null) {
            lvAdapter = new MyLvAdapter(lists, getActivity());
            xlv.setAdapter(lvAdapter);

        } else {
            lvAdapter.notifyDataSetChanged();
        }
    }

    @Override
    public void onActivityCreated(@Nullable Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
        requestData();
    }

    private void requestData() {
        MyTask mytask = new MyTask(new MyTask.Icallbacks() {
            @Override
            public void updateUiByjson(String jsonstr) {
                Gson gson = new Gson();
                Results result = gson.fromJson(jsonstr, Results.class);
                //要显示的数据
                lists.addAll(result.getResults());
                //设置适配器
                setAdapter();
            }
        });
        mytask.execute("http://gank.io/api/data/Android/10/" + pageIndex);
    }
}
//MyAdapter

package com.example.dibu.Adapter;

import android.content.Context;
import android.graphics.Bitmap;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;

import com.example.dibu.Bean.Result;
import com.example.dibu.R;
import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoader;

import java.util.List;

public class MyAdapter extends BaseAdapter {

    private List<Result.DataEntity> datas;
    private Context context;
    private DisplayImageOptions options;


    public MyAdapter(List<Result.DataEntity> datas, Context context) {
        this.datas = datas;
        this.context = context;
        options = new DisplayImageOptions.Builder()
                .cacheInMemory(true)//使用内存缓存
                .cacheOnDisk(true)//使用磁盘缓存
                .bitmapConfig(Bitmap.Config.RGB_565)//设置图片格式
                .build();
    }

    @Override
    public int getCount() {
        return datas.size();
    }

    @Override
    public Object getItem(int position) {
        return datas.get(position);
    }

    @Override
    public long getItemId(int position) {
        return position;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        ViewHolder holder = null;
        if (convertView == null) {
            convertView = View.inflate(context, R.layout.item, null);
            holder = new ViewHolder();
            holder.tvTitle = (TextView) convertView.findViewById(R.id.tv_title);
            holder.img = (ImageView) convertView.findViewById(R.id.img);

            convertView.setTag(holder);
        } else {
            holder = (ViewHolder) convertView.getTag();

        }
        holder.tvTitle.setText(datas.get(position).getTITLE());
        if (datas.get(position).getIMAGEURL() == null || datas.get(position).getIMAGEURL().equals("")) {
            holder.img.setImageResource(R.mipmap.ic_launcher);
        } else {
            //imageLoader加载图片
            ImageLoader.getInstance().displayImage(datas.get(position).getIMAGEURL(), holder.img, options);
        }

        return convertView;
    }

    class ViewHolder {
        TextView tvTitle;
        ImageView img;
    }
}
//MyLvAdapter

package com.example.dibu.Adapter;

import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;

import com.example.dibu.Bean.Results;
import com.example.dibu.R;
import com.example.dibu.Utils.ImageloaderUtil;
import com.nostra13.universalimageloader.core.ImageLoader;

import java.util.List;


public class MyLvAdapter extends BaseAdapter {
    private List<Results.ResultsEntity> lists;
    private Context context;

    //定义视图类型
    private final int TYPE_TITLE = 0;
    private final int TYPE_PIC = 1;

    public MyLvAdapter(List<Results.ResultsEntity> lists, Context context) {
        this.lists = lists;
        this.context = context;
    }

    @Override
    public int getCount() {
        return lists.size();
    }


    //返回视图类型的数量
    @Override
    public int getViewTypeCount() {
        return 2;
    }

    //根据当前的条目的下标,返回此条目对应的视图类型
    @Override
    public int getItemViewType(int position) {
        //根据数据去判断返回的类型
        Results.ResultsEntity entity = lists.get(position);
        List<String> imgurl = entity.getImages();
        if (imgurl == null) {
            return TYPE_TITLE;
        } else {
            return TYPE_PIC;
        }

    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        //根据position得到视图类型
        int type = getItemViewType(position);
        if (type == TYPE_TITLE) {
            ViewHolderTitle holderTitle;
            if (convertView == null) {
                holderTitle = new ViewHolderTitle();
                convertView = View.inflate(context, R.layout.item1, null);
                holderTitle.textView = (TextView) convertView.findViewById(R.id.tv_title);
                convertView.setTag(holderTitle);

            } else {
                holderTitle = (ViewHolderTitle) convertView.getTag();
            }
            holderTitle.textView.setText(lists.get(position).getDesc());


        } else if (type == TYPE_PIC) {

            ViewHolderPic holderPic;
            if (convertView == null) {
                holderPic = new ViewHolderPic();
                convertView = View.inflate(context, R.layout.item2, null);
                holderPic.textView = (TextView) convertView.findViewById(R.id.tv_title);
                holderPic.imageView = (ImageView) convertView.findViewById(R.id.img);
                convertView.setTag(holderPic);

            } else {
                holderPic = (ViewHolderPic) convertView.getTag();
            }
            holderPic.textView.setText(lists.get(position).getDesc());

            //加载图片
            ImageLoader.getInstance().displayImage(
                    lists.get(position).getImages().get(0),
                    holderPic.imageView,
                    ImageloaderUtil.getImageOptions());


        }


        return convertView;
    }

    @Override
    public long getItemId(int position) {
        return position;
    }

    @Override
    public Object getItem(int position) {
        return lists.get(position);
    }

    class ViewHolderTitle {
        TextView textView;
    }

    class ViewHolderPic {
        TextView textView;
        ImageView imageView;
    }

}
//MyPager

package com.example.dibu.Adapter;

import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;

import com.example.dibu.Frag.Page2Frag;

import java.util.ArrayList;
import java.util.List;

/**
 * Created by 一生不羁放纵 on 2017/10/25 0025.
 */
public class MyPager extends FragmentPagerAdapter {
    private List<String> tabs = new ArrayList<String>();

    public MyPager(FragmentManager fm, List<String> tabs) {
        super(fm);
        this.tabs = tabs;
    }

    @Override
    public CharSequence getPageTitle(int position) {
        return tabs.get(position);
    }

    @Override
    public Fragment getItem(int position) {
        Fragment f = null;
        switch (position) {
            case 0:
                f = new Page2Frag();
                break;
            case 1:
                f = new Page2Frag();
                break;
            case 2:
                f = new Page2Frag();
                break;
            case 3:
                f = new Page2Frag();
                break;
            case 4:
                f = new Page2Frag();
                break;
            case 5:
                f = new Page2Frag();
                break;
            case 6:
                f = new Page2Frag();
                break;
            case 7:
                f = new Page2Frag();
                break;
            case 8:
                f = new Page2Frag();
                break;
            case 9:
                f = new Page2Frag();
                break;
        }
        return f;
    }

    @Override
    public int getCount() {
        return tabs.size();
    }
}
//MyPagerAdapter

package com.example.dibu.Adapter;

import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;

import com.example.dibu.Frag.RmFrag;

import java.util.ArrayList;
import java.util.List;

public class MyPagerAdapter extends FragmentPagerAdapter {
    private List<String> tabs = new ArrayList<String>();

    public MyPagerAdapter(FragmentManager fm, List<String> tabs) {
        super(fm);
        this.tabs = tabs;
    }

    @Override
    public CharSequence getPageTitle(int position) {
        return tabs.get(position);
    }

    @Override
    public Fragment getItem(int position) {
        Fragment f = null;
        switch (position) {
            case 0:
                f = new RmFrag();
                break;
            case 1:
                f = new RmFrag();
                break;
            case 2:
                f = new RmFrag();
                break;
        }
        return f;
    }

    @Override
    public int getCount() {
        return tabs.size();
    }
}
//Results

package com.example.dibu.Bean;

import java.util.List;


public class Results {
    private List<ResultsEntity> results;
    private boolean error;

    public void setResults(List<ResultsEntity> results) {
        this.results = results;
    }

    public void setError(boolean error) {
        this.error = error;
    }

    public List<ResultsEntity> getResults() {
        return results;
    }

    public boolean isError() {
        return error;
    }

    public class ResultsEntity {
        /**
         * publishedAt : 2017-10-16T12:19:20.311Z
         * desc : 文章中详实说明利用Cmake构造Ndk库需要注意的问题,以及部分Cmake命令的解读。
         * source : web
         * _id : 59df3eac421aa90fef20347c
         * createdAt : 2017-10-12T18:06:36.692Z
         * used : true
         * type : Android
         * url : http://blog.csdn.net/qq_34902522/article/details/78144127
         * who : null
         */
        private String publishedAt;
        private String desc;
        private String source;
        private String _id;
        private String createdAt;
        private boolean used;
        private String type;
        private String url;
        private String who;
        private List<String> images;

        public List<String> getImages() {
            return images;
        }

        public void setImages(List<String> images) {
            this.images = images;
        }

        public void setPublishedAt(String publishedAt) {
            this.publishedAt = publishedAt;
        }

        public void setDesc(String desc) {
            this.desc = desc;
        }

        public void setSource(String source) {
            this.source = source;
        }

        public void set_id(String _id) {
            this._id = _id;
        }

        public void setCreatedAt(String createdAt) {
            this.createdAt = createdAt;
        }

        public void setUsed(boolean used) {
            this.used = used;
        }

        public void setType(String type) {
            this.type = type;
        }

        public void setUrl(String url) {
            this.url = url;
        }

        public void setWho(String who) {
            this.who = who;
        }

        public String getPublishedAt() {
            return publishedAt;
        }

        public String getDesc() {
            return desc;
        }

        public String getSource() {
            return source;
        }

        public String get_id() {
            return _id;
        }

        public String getCreatedAt() {
            return createdAt;
        }

        public boolean isUsed() {
            return used;
        }

        public String getType() {
            return type;
        }

        public String getUrl() {
            return url;
        }

        public String getWho() {
            return who;
        }
    }
}
//Result

package com.example.dibu.Bean;

import java.util.List;

/**
 * Created by 一生不羁放纵 on 2017/10/24 0024.
 */

public class Result {
    private String result;
    private List<DataScrollEntity> dataScroll;
    private List<DataEntity> data;

    public void setResult(String result) {
        this.result = result;
    }

    public void setDataScroll(List<DataScrollEntity> dataScroll) {
        this.dataScroll = dataScroll;
    }

    public void setData(List<DataEntity> data) {
        this.data = data;
    }

    public String getResult() {
        return result;
    }

    public List<DataScrollEntity> getDataScroll() {
        return dataScroll;
    }

    public List<DataEntity> getData() {
        return data;
    }

    public class DataScrollEntity {
        /**
         * FROMNAME : 九三学社中央宣传部
         * SUBTITLE : null
         * SHOWTIME : 2017-10-15
         * ID : 30310406
         * IMAGEURL : /11002/upload/webcms/content/image/2017/10/15/14_56_29_117_12420_01.jpg
         * RN : 1
         * TITLE : 九三学社中央科学座谈会聚焦文物考古与丝绸之路
         */
        private String FROMNAME;
        private String SUBTITLE;
        private String SHOWTIME;
        private String ID;
        private String IMAGEURL;
        private int RN;
        private String TITLE;

        public void setFROMNAME(String FROMNAME) {
            this.FROMNAME = FROMNAME;
        }

        public void setSUBTITLE(String SUBTITLE) {
            this.SUBTITLE = SUBTITLE;
        }

        public void setSHOWTIME(String SHOWTIME) {
            this.SHOWTIME = SHOWTIME;
        }

        public void setID(String ID) {
            this.ID = ID;
        }

        public void setIMAGEURL(String IMAGEURL) {
            this.IMAGEURL = IMAGEURL;
        }

        public void setRN(int RN) {
            this.RN = RN;
        }

        public void setTITLE(String TITLE) {
            this.TITLE = TITLE;
        }

        public String getFROMNAME() {
            return FROMNAME;
        }

        public String getSUBTITLE() {
            return SUBTITLE;
        }

        public String getSHOWTIME() {
            return SHOWTIME;
        }

        public String getID() {
            return ID;
        }

        public String getIMAGEURL() {
            return IMAGEURL;
        }

        public int getRN() {
            return RN;
        }

        public String getTITLE() {
            return TITLE;
        }
    }

    public class DataEntity {
        /**
         * FROMNAME : 九三学社中央宣传部
         * SUBTITLE : Get the Flash Player to see this player.
         * SHOWTIME : 2017-10-19
         * ID : 30310476
         * IMAGEURL : null
         * RN : 1
         * TITLE : 九三学社中央致信祝贺中共十九大胜利召开
         */
        private String FROMNAME;
        private String SUBTITLE;
        private String SHOWTIME;
        private String ID;
        private String IMAGEURL;
        private int RN;
        private String TITLE;

        public void setFROMNAME(String FROMNAME) {
            this.FROMNAME = FROMNAME;
        }

        public void setSUBTITLE(String SUBTITLE) {
            this.SUBTITLE = SUBTITLE;
        }

        public void setSHOWTIME(String SHOWTIME) {
            this.SHOWTIME = SHOWTIME;
        }

        public void setID(String ID) {
            this.ID = ID;
        }

        public void setIMAGEURL(String IMAGEURL) {
            this.IMAGEURL = IMAGEURL;
        }

        public void setRN(int RN) {
            this.RN = RN;
        }

        public void setTITLE(String TITLE) {
            this.TITLE = TITLE;
        }

        public String getFROMNAME() {
            return FROMNAME;
        }

        public String getSUBTITLE() {
            return SUBTITLE;
        }

        public String getSHOWTIME() {
            return SHOWTIME;
        }

        public String getID() {
            return ID;
        }

        public String getIMAGEURL() {
            return IMAGEURL;
        }

        public int getRN() {
            return RN;
        }

        public String getTITLE() {
            return TITLE;
        }
    }
}
//App

//MyTask

//StreamToString

//ImageLoaderUtil

<uses-permission android:name="android.permission.INTERNET"></uses-permission>
compile 'com.hjm:BottomTabBar:1.1.1'
compile 'com.youth.banner:banner:1.4.9'
compile 'q.rorbin:VerticalTabLayout:1.2.5'
compile files('libs/universal-image-loader-1.9.3-with-sources.jar')
compile files('libs/gson-2.2.4.jar')



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值