在build.gradle添加依赖库
compile ‘com.android.support:design:25.2.0’
compile ‘com.github.userswlwork:pull-to-refresh:1.0.0’
compile ‘com.youth.banner:banner:1.4.10’
再导入gson和imgaloder jar包
在添加权限
网络权限和name
布局
activiti.xml

<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout
    xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"android:layout_height="match_parent"android:id="@+id/drawer"><!-- 主内容--><LinearLayout
        android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"><FrameLayout
            android:id="@+id/fl"android:layout_width="match_parent"android:layout_height="0dp"android:layout_weight="9"></FrameLayout><RadioGroup
            android:id="@+id/rg"android:layout_width="match_parent"android:layout_height="0dp"android:layout_weight="1"android:orientation="horizontal"android:layout_marginTop="10dp"><RadioButton
                android:id="@+id/btn1"android:layout_width="0dp"android:layout_height="wrap_content"android:button="@null"android:text="首页"android:gravity="center_horizontal"android:textSize="20dp"android:layout_weight="1"android:checked="true"android:background="@drawable/dianji"/><RadioButton
                android:id="@+id/btn2"android:layout_width="0dp"android:layout_height="wrap_content"android:button="@null"android:text="分类"android:gravity="center_horizontal"android:textSize="20dp"android:layout_weight="1"android:background="@drawable/dianji"/><RadioButton
                android:id="@+id/btn3"android:layout_width="0dp"android:layout_height="wrap_content"android:button="@null"android:text="发现"android:gravity="center_horizontal"android:textSize="20dp"android:layout_weight="1"android:background="@drawable/dianji"/><RadioButton
                android:id="@+id/btn4"android:layout_width="0dp"android:layout_height="wrap_content"android:button="@null"android:text="购物车"android:gravity="center_horizontal"android:textSize="20dp"android:layout_weight="1"android:background="@drawable/dianji"/><RadioButton
                android:id="@+id/btn5"android:layout_width="0dp"android:layout_height="wrap_content"android:button="@null"android:text="我的"android:gravity="center_horizontal"android:textSize="20dp"android:layout_weight="1"android:background="@drawable/dianji"/></RadioGroup></LinearLayout><!--侧滑菜单--><LinearLayout
        android:id="@+id/lin"android:layout_width="300dp"android:layout_height="match_parent"android:background="#f89"android:layout_gravity="start"android:orientation="vertical"><ImageView
            android:id="@+id/draimg"android:layout_marginTop="10dp"android:layout_width="290dp"android:layout_height="260dp"android:src="@mipmap/ic_launcher"/><ListView
            android:id="@+id/dralv"android:layout_width="match_parent"android:layout_marginTop="30dp"android:layout_height="match_parent"></ListView></LinearLayout></android.support.v4.widget.DrawerLayout>

Fragment1

<?xml version="1.0" encoding="utf-8"?>
<com.handmark.pulltorefresh.library.PullToRefreshScrollViewxmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:id="@+id/pslv"><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="vertical"><com.youth.banner.Bannerandroid:id="@+id/banner"android:layout_width="match_parent"android:layout_height="300dp"></com.youth.banner.Banner><com.example.zonghe.Mygridviewandroid:id="@+id/gv"android:layout_width="match_parent"android:layout_height="match_parent"android:numColumns="2"></com.example.zonghe.Mygridview></LinearLayout></com.handmark.pulltorefresh.library.PullToRefreshScrollView>

Fragemn2

<?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"><ListView
        android:id="@+id/f2_lv"android:layout_width="0dp"android:layout_height="match_parent"android:layout_weight="1"></ListView><GridView
        android:id="@+id/f2_gv"android:layout_width="0dp"android:layout_height="match_parent"android:layout_weight="3"android:numColumns="3"android:layout_marginLeft="10dp"></GridView></LinearLayout>

3

<?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"xmlns:app="http://schemas.android.com/apk/res-auto"android:orientation="vertical"><android.support.design.widget.TabLayoutandroid:id="@+id/f3_tab"android:layout_width="match_parent"android:layout_height="50dp"app:tabGravity="center"app:tabIndicatorColor="@color/colorAccent"app:tabMode="scrollable"app:tabSelectedTextColor="@color/colorPrimaryDark"app:tabTextColor="@color/colorPrimary"></android.support.design.widget.TabLayout><android.support.v4.view.ViewPagerandroid:layout_width="match_parent"android:layout_height="match_parent"android:id="@+id/f3_vp"></android.support.v4.view.ViewPager></LinearLayout>

4

<?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"><LinearLayout
        android:layout_width="match_parent"android:layout_height="0dp"android:orientation="horizontal"android:layout_weight="1"><ImageView
            android:layout_width="0dp"android:layout_height="wrap_content"android:layout_weight="1"android:src="@mipmap/q4"/><ImageView
            android:layout_width="0dp"android:layout_height="wrap_content"android:layout_weight="1"android:src="@mipmap/q5"android:layout_marginLeft="10dp"/></LinearLayout><LinearLayout
        android:layout_width="match_parent"android:layout_height="0dp"android:orientation="horizontal"android:layout_weight="1"><ImageView
            android:layout_width="0dp"android:layout_height="wrap_content"android:layout_weight="1"android:src="@mipmap/a10"/><ImageView
            android:layout_width="0dp"android:layout_height="wrap_content"android:layout_weight="1"android:src="@mipmap/t8"android:layout_marginLeft="10dp"/></LinearLayout></LinearLayout>

5

<?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:textSize="30dp"android:text="
我在清晨的路上
谁被我遗忘
我在深夜里旅行
谁被我遗忘
肩上的破旧行囊
能收藏多少坚强
不如全身赤裸
还给我那脆弱
明知这是一场意外
你要不要来
明知这是一场重伤害
你会不会来
当疯狂慢慢从爱情离开
还有什么你值得感慨
如果风景早已都不存在
我想我谁都不爱
都不爱都不爱
都不爱都不爱
都不爱
都不爱都不爱
都不爱都不爱
我在清晨的路上
谁被我遗忘
我在深夜里旅行
谁被我遗忘
肩上的破旧行囊
能收藏多少坚强
不如全身赤裸
还给我那脆弱
明知这是一场意外
你要不要来
明知这是一场重伤害
你会不会来
当疯狂慢慢从爱情离开
还有什么你值得感慨
如果风景早已都不存在
我想我谁都不爱
明知这是一场意外
你要不要来
明知这是一场重伤害
你会不会来
当疯狂慢慢从爱情离开
还有什么你值得感慨
如果风景早已都不存在
我想我谁都不爱
谁都不爱"android:gravity="center_horizontal"/></LinearLayout>

item

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"><ImageView
        android:id="@+id/img"android:layout_width="100dp"android:layout_height="80dp"/><TextView
        android:id="@+id/tv"android:layout_width="match_parent"android:layout_height="wrap_content" /></LinearLayout>

item2

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"><ImageView
        android:id="@+id/img"android:layout_width="100dp"android:layout_height="80dp"/><TextView
        android:id="@+id/tv"android:layout_width="match_parent"android:layout_height="wrap_content" /></LinearLayout>

itemtitle

<?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/title"android:layout_width="match_parent"android:layout_height="wrap_content"/></LinearLayout>

itemmuser

<?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"android:layout_width="match_parent"android:layout_height="match_parent"android:layout_marginTop="40dp"android:textSize="20dp"android:layout_gravity="center_horizontal"/></LinearLayout>

f3_fragent.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"><com.handmark.pulltorefresh.library.PullToRefreshListView
        android:id="@+id/f3_plv"android:layout_width="match_parent"android:layout_height="match_parent"></com.handmark.pulltorefresh.library.PullToRefreshListView></LinearLayout>

颜色布局
dianji

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android"><item android:state_checked="true"  android:drawable="@color/colorAccent" ></item><item android:state_checked="false"  android:drawable="@color/colorPrimary" ></item>
</selector>

MainActivity

import android.os.Bundle;
import android.support.annotation.IdRes;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.FrameLayout;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.RadioGroup;
import com.example.zonghe.fragment.Myfragment1;
import com.example.zonghe.fragment.Myfragment2;
import com.example.zonghe.fragment.Myfragment3;
import com.example.zonghe.fragment.Myfragment4;
import com.example.zonghe.fragment.Myfragment5;
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends AppCompatActivity {private DrawerLayout drawer;private LinearLayout lin;private ListView lv;private FrameLayout fl;private RadioGroup rg;List<String> li = new ArrayList<>();private ImageView img;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);li.add("个人设置");li.add("缓存");li.add("夜间模式");li.add("配置");drawer = (DrawerLayout) findViewById(R.id.drawer);lin = (LinearLayout) findViewById(R.id.lin);lv = (ListView) findViewById(R.id.dralv);img = (ImageView) findViewById(R.id.draimg);ArrayAdapter<String> array = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, li);lv.setAdapter(array);img.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {drawer.closeDrawer(lin);}});getSupportFragmentManager().beginTransaction().replace(R.id.fl, new Myfragment1()).commit();rg = (RadioGroup) findViewById(R.id.rg);rg.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {@Overridepublic void onCheckedChanged(RadioGroup radioGroup, @IdRes int i) {switch (i) {case R.id.btn1:getSupportFragmentManager().beginTransaction().replace(R.id.fl, new Myfragment1()).commit();break;case R.id.btn2:getSupportFragmentManager().beginTransaction().replace(R.id.fl, new Myfragment2()).commit();break;case R.id.btn3:getSupportFragmentManager().beginTransaction().replace(R.id.fl, new Myfragment3()).commit();break;case R.id.btn4:getSupportFragmentManager().beginTransaction().replace(R.id.fl, new Myfragment4()).commit();break;case R.id.btn5:getSupportFragmentManager().beginTransaction().replace(R.id.fl, new Myfragment5()).commit();break;}}});}
}

Fragement1

package com.example.zonghe.fragment;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 android.widget.GridView;
import android.widget.ScrollView;import com.example.zonghe.R;
import com.example.zonghe.adapter.MyAdapter;
import com.example.zonghe.bean.DataDataBean;
import com.example.zonghe.utils.Mybanner;
import com.example.zonghe.utils.ShuJu;
import com.example.zonghe.utils.Utils;
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.youth.banner.Banner;import java.util.ArrayList;
import java.util.List;/*** Created by Administrator on 2017/11/20.*/public class Myfragment1 extends Fragment {int index = 1;int type = 1;String Url = "http://www.yulin520.com/a2a/impressApi/news/mergeList?pageSize=10&page=" + index;private PullToRefreshScrollView pslv;private Banner ban;List<String> list = new ArrayList<>();private GridView gv;List<DataDataBean.DataBean> data = new ArrayList<>();private MyAdapter adapter;@Nullable@Overridepublic View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {View vi = inflater.inflate(R.layout.fragment1, container, false);list.add("http://pic8.nipic.com/20100701/5290458_114840036316_2.jpg");list.add("http://pic2.nipic.com/20090424/1468853_230119053_2.jpg");list.add("http://img3.3lian.com/2013/s1/20/d/57.jpg");list.add("http://pic39.nipic.com/20140226/18071023_164300608000_2.jpg");list.add("http://a0.att.hudong.com/15/08/300218769736132194086202411_950.jpg");//设置无线轮播ban = (Banner) vi.findViewById(R.id.banner);gv = (GridView) vi.findViewById(R.id.gv);ban.setImageLoader(new Mybanner());//添加自定义的图片加载器ban.setImages(list);//设置图片资源ban.start();//开始轮播pslv = (PullToRefreshScrollView) vi.findViewById(R.id.pslv);pslv.setMode(PullToRefreshBase.Mode.BOTH);//3.通过getLoadingLayoutProxy 方法来指定上拉和下拉时显示的状态的区别(也就是设置向下拉的时候头部里面显示的文字)//此时这里设置的是下拉刷新的时候显示的文字,所以第一个设置true表示现在是刷新,第二个设置为falseILoadingLayout startLabels = pslv.getLoadingLayoutProxy(true, false);startLabels.setPullLabel("下拉刷新");startLabels.setRefreshingLabel("正在刷新...");startLabels.setReleaseLabel("放开刷新");ILoadingLayout endLabels = pslv.getLoadingLayoutProxy(false, true);endLabels.setPullLabel("上拉刷新");endLabels.setRefreshingLabel("正在载入...");endLabels.setReleaseLabel("放开刷新...");//设置监听pslv.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ScrollView>() {//刷新@Overridepublic void onPullDownToRefresh(PullToRefreshBase<ScrollView> pullToRefreshBase) {index = 1;type = 1;add();}//加载@Overridepublic void onPullUpToRefresh(PullToRefreshBase<ScrollView> pullToRefreshBase) {index++;type = 2;add();}});add();return vi;}//展示数据public void add() {Utils.getData(Url, getActivity(), new ShuJu() {@Overridepublic void getData(String s) {Gson gson = new Gson();DataDataBean dataBean = gson.fromJson(s, DataDataBean.class);if (type == 1) {data.clear();data.addAll(dataBean.getData());} else {data.addAll(dataBean.getData());}setAdapter();//关闭刷新new Handler().postDelayed(new Runnable() {@Overridepublic void run() {pslv.onRefreshComplete();}}, 1000);}});}//设置适配器public void setAdapter() {if (adapter == null) {adapter = new MyAdapter(data, getActivity());gv.setAdapter(adapter);} else {adapter.notifyDataSetChanged();}}
}

fragemnt02

package com.example.zonghe.fragment;import android.os.Bundle;
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.AdapterView;
import android.widget.GridView;
import android.widget.ListView;import com.example.zonghe.R;
import com.example.zonghe.adapter.FerAdapter;
import com.example.zonghe.adapter.MyF2ListAdapter;
import com.example.zonghe.bean.DataBean;
import com.example.zonghe.bean.User;
import com.example.zonghe.utils.ShuJu;
import com.example.zonghe.utils.Utils;
import com.google.gson.Gson;import java.util.ArrayList;
import java.util.List;/*** Created by Administrator on 2017/11/20.*/public class Myfragment2 extends Fragment {private GridView gv;private ListView lv;List<User> li = new ArrayList<>();private String path;private List<DataBean.NewslistBean> newslist;private FerAdapter ferAdapter;@Nullable@Overridepublic View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {View vi = inflater.inflate(R.layout.fragment2, container, false);lv = (ListView) vi.findViewById(R.id.f2_lv);gv = (GridView) vi.findViewById(R.id.f2_gv);put();MyF2ListAdapter array = new MyF2ListAdapter(li, getActivity());lv.setAdapter(array);lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {@Overridepublic void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {User user = li.get(i);int id = user.getId();Log.d("qqq", "+++++++++++" + id);path = "http://api.tianapi.com/huabian/?key=56059a1b935aa448c764a0c3b9e63b7c&num=" + id;add();}});return vi;}public void add() {Utils.getData(path, getActivity(), new ShuJu() {@Overridepublic void getData(String s) {Gson gson = new Gson();DataBean dataBean = gson.fromJson(s, DataBean.class);newslist = dataBean.getNewslist();setAdapter();}});}//设置适配器public void setAdapter() {if (ferAdapter == null) {ferAdapter = new FerAdapter(newslist, getActivity());gv.setAdapter(ferAdapter);} else {ferAdapter.notifyDataSetChanged();}}//添加listview的数据public void put() {User us1 = new User("钱包手袋", 10);User us2 = new User("美妆个护", 20);User us3 = new User("钟表珠宝", 30);User us4 = new User("手机数码", 40);User us5 = new User("电脑办公", 50);User us6 = new User("家用电器", 60);User us7 = new User("酒水饮料", 70);li.add(us1);li.add(us2);li.add(us3);li.add(us4);li.add(us5);li.add(us6);li.add(us7);}
}

fragment03

package com.example.zonghe.fragment;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.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;import com.example.zonghe.R;import java.util.ArrayList;
import java.util.List;/*** Created by Administrator on 2017/11/20.*/public class Myfragment3 extends Fragment {List<String> li = new ArrayList<>();List<Fragment> frag = new ArrayList<>();private TabLayout tab;private ViewPager vp;@Nullable@Overridepublic View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {View vi = inflater.inflate(R.layout.fragment3, container, false);tab = (TabLayout) vi.findViewById(R.id.f3_tab);vp = (ViewPager) vi.findViewById(R.id.f3_vp);li.add("精选");li.add("英伦风");li.add("直播");li.add("订阅");li.add("视频购");li.add("阅答");vp.setAdapter(new Myf3Adapter(getFragmentManager()));tab.setupWithViewPager(vp);vp.setOffscreenPageLimit(li.size());return vi;}class Myf3Adapter extends FragmentPagerAdapter {public Myf3Adapter(FragmentManager fm) {super(fm);}@Overridepublic Fragment getItem(int position) {return new MyFragment31();}@Overridepublic int getCount() {return li.size();}@Overridepublic CharSequence getPageTitle(int position) {return li.get(position);}}
}

fragment04

package com.example.zonghe.fragment;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.zonghe.R;/*** Created by Administrator on 2017/11/20.*/public class Myfragment4 extends Fragment {@Nullable@Overridepublic View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {View vi = inflater.inflate(R.layout.fragment4, container, false);return vi;}
}

fragment05

package com.example.zonghe.fragment;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.zonghe.R;/*** Created by Administrator on 2017/11/20.*/public class Myfragment5 extends Fragment {@Nullable@Overridepublic View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {View vi = inflater.inflate(R.layout.fragment5, container, false);return vi;}
}

MyFragment31`

package com.example.zonghe.fragment;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 android.widget.ListView;import com.example.zonghe.R;
import com.example.zonghe.adapter.DuotiaomuAdapter;
import com.example.zonghe.bean.DataDataBean;
import com.example.zonghe.utils.ShuJu;
import com.example.zonghe.utils.Utils;
import com.google.gson.Gson;
import com.handmark.pulltorefresh.library.ILoadingLayout;
import com.handmark.pulltorefresh.library.PullToRefreshBase;
import com.handmark.pulltorefresh.library.PullToRefreshListView;import java.util.ArrayList;
import java.util.List;/*** Created by Administrator on 2017/11/20.*/public class MyFragment31 extends Fragment {private PullToRefreshListView plv;int index = 1;int type = 1;String Url = "http://www.yulin520.com/a2a/impressApi/news/mergeList?pageSize=10&page=" + index;List<DataDataBean.DataBean> data = new ArrayList<>();private DuotiaomuAdapter adapter;@Nullable@Overridepublic View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {View vi = inflater.inflate(R.layout.f3_fragment, container, false);plv = (PullToRefreshListView) vi.findViewById(R.id.f3_plv);plv.setMode(PullToRefreshBase.Mode.BOTH);//3.通过getLoadingLayoutProxy 方法来指定上拉和下拉时显示的状态的区别(也就是设置向下拉的时候头部里面显示的文字)//此时这里设置的是下拉刷新的时候显示的文字,所以第一个设置true表示现在是刷新,第二个设置为falseILoadingLayout startLabels = plv.getLoadingLayoutProxy(true, false);startLabels.setPullLabel("下拉刷新");startLabels.setRefreshingLabel("正在刷新...");startLabels.setReleaseLabel("放开刷新");ILoadingLayout endLabels = plv.getLoadingLayoutProxy(false, true);endLabels.setPullLabel("上拉刷新");endLabels.setRefreshingLabel("正在载入...");endLabels.setReleaseLabel("放开刷新...");//设置监听plv.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() {@Overridepublic void onPullDownToRefresh(PullToRefreshBase<ListView> pullToRefreshBase) {index = 1;type = 1;add();}@Overridepublic void onPullUpToRefresh(PullToRefreshBase<ListView> pullToRefreshBase) {index++;type = 2;add();}});add();return vi;}//展示数据public void add() {Utils.getData(Url, getActivity(), new ShuJu() {@Overridepublic void getData(String s) {Gson gson = new Gson();DataDataBean dataBean = gson.fromJson(s, DataDataBean.class);if (type == 1) {data.clear();data.addAll(dataBean.getData());} else {data.addAll(dataBean.getData());}setAdapter();//关闭刷新new Handler().postDelayed(new Runnable() {@Overridepublic void run() {plv.onRefreshComplete();}}, 1000);}});}//设置适配器public void setAdapter() {if (adapter == null) {adapter = new DuotiaomuAdapter(data, getActivity());plv.setAdapter(adapter);} else {adapter.notifyDataSetChanged();}}}

适配器
MyAdapter

package com.example.zonghe.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.zonghe.R;
import com.example.zonghe.bean.DataDataBean;
import com.example.zonghe.utils.Utils;
import com.nostra13.universalimageloader.core.ImageLoader;import java.util.List;/*** 适配器* <p>* Created by Administrator on 2017/11/20.*/public class MyAdapter extends BaseAdapter {List<DataDataBean.DataBean> li;Context ct;public MyAdapter(List<DataDataBean.DataBean> li, Context ct) {this.li = li;this.ct = ct;}@Overridepublic int getCount() {return li.size();}@Overridepublic Object getItem(int i) {return li.get(i);}@Overridepublic long getItemId(int i) {return i;}//优化@Overridepublic View getView(int i, View view, ViewGroup viewGroup) {ViewHouder vh;if (view == null) {vh = new ViewHouder();view = View.inflate(ct, R.layout.item, null);vh.img = (ImageView) view.findViewById(R.id.img);vh.tv = (TextView) view.findViewById(R.id.tv);view.setTag(vh);} else {vh = (ViewHouder) view.getTag();}ImageLoader.getInstance().displayImage(li.get(i).getImg(), vh.img, Utils.getTuXing());vh.tv.setText(li.get(i).getIntroduction());return view;}class ViewHouder {ImageView img;TextView tv;}}

MyF2ListAdapter

package com.example.zonghe.adapter;import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;import com.example.zonghe.R;
import com.example.zonghe.bean.User;import java.util.List;/*** 适配器** Created by Administrator on 2017/11/20.*/public class MyF2ListAdapter extends BaseAdapter {List<User> li;Context ct;public MyF2ListAdapter(List<User> li, Context ct) {this.li = li;this.ct = ct;}@Overridepublic int getCount() {return li.size();}@Overridepublic Object getItem(int i) {return li.get(i);}@Overridepublic long getItemId(int i) {return i;}//优化@Overridepublic View getView(int i, View view, ViewGroup viewGroup) {ViewHouder vh;if(view==null){vh=new ViewHouder();view=View.inflate(ct, R.layout.itemuser,null);vh.tv= (TextView) view.findViewById(R.id.tv);view.setTag(vh);}else{vh = (ViewHouder) view.getTag();}vh.tv.setText(li.get(i).getName());return view;}class ViewHouder{TextView tv;}
}

FerAdapter

package com.example.zonghe.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.zonghe.R;
import com.example.zonghe.bean.DataBean;
import com.example.zonghe.utils.Utils;
import com.nostra13.universalimageloader.core.ImageLoader;import java.util.List;/*** 适配器* <p>* Created by Administrator on 2017/11/20.*/public class FerAdapter extends BaseAdapter {List<DataBean.NewslistBean> li;Context ct;public FerAdapter(List<DataBean.NewslistBean> li, Context ct) {this.li = li;this.ct = ct;}@Overridepublic int getCount() {return li.size();}@Overridepublic Object getItem(int i) {return li.get(i);}@Overridepublic long getItemId(int i) {return i;}//优化@Overridepublic View getView(int i, View view, ViewGroup viewGroup) {ViewHouder vh;if (view == null) {vh = new ViewHouder();view = View.inflate(ct, R.layout.item2, null);vh.img = (ImageView) view.findViewById(R.id.img);vh.tv = (TextView) view.findViewById(R.id.tv);          view.setTag(vh);} else {vh = (ViewHouder) view.getTag();}
ImageLoader.getInstance().displayImage(li.get(i).getPicUrl(), vh.img, Utils.getTuXing());    vh.tv.setText(li.get(i).getTitle());return view;}class ViewHouder {ImageView img;TextView tv;}
}

DuotiaomuAdapter

package com.example.zonghe.adapter;import android.content.Context;
import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;import com.example.zonghe.R;
import com.example.zonghe.bean.DataDataBean;
import com.example.zonghe.utils.Utils;
import com.nostra13.universalimageloader.core.ImageLoader;import java.util.List;/*** 适配器** Created by Administrator on 2017/11/20.*/public class DuotiaomuAdapter extends BaseAdapter {List<DataDataBean.DataBean> li;Context ct;int wu=0;int you=1;public DuotiaomuAdapter(List<DataDataBean.DataBean> li, Context ct) {this.li = li;this.ct = ct;}@Overridepublic int getViewTypeCount() {return 2;}@Overridepublic int getItemViewType(int position) {String img = li.get(position).getImg();if (img==null){return wu;}else{return you;}}@Overridepublic int getCount() {return li.size();}@Overridepublic Object getItem(int i) {return li.get(i);}@Overridepublic long getItemId(int i) {return i;}//优化@Overridepublic View getView(int i, View view, ViewGroup viewGroup) {int type = getItemViewType(i);if (type==wu){Log.d("qqq","进入无图");ViewHoudertitle vh;if(view==null){vh=new ViewHoudertitle();view=View.inflate(ct, R.layout.itemtitle,null);vh.tv= (TextView) view.findViewById(R.id.tv);view.setTag(vh);}else{vh = (ViewHoudertitle) view.getTag();}vh.tv.setText(li.get(i).getIntroduction());return view;}else{Log.d("qqq","进入有图");ViewHouder vh;if(view==null){vh=new ViewHouder();view=View.inflate(ct, R.layout.item,null);vh.img= (ImageView) view.findViewById(R.id.img);vh.tv= (TextView) view.findViewById(R.id.tv);view.setTag(vh);}else{vh = (ViewHouder) view.getTag();}ImageLoader.getInstance().displayImage(li.get(i).getImg(),vh.img, Utils.getTuXing());vh.tv.setText(li.get(i).getIntroduction());return view;}}class ViewHouder{ImageView img;TextView tv;}class ViewHoudertitle{TextView tv;}}

User

package com.example.zonghe.bean;/*** Created by Administrator on 2017/11/20.*/public class User {private String name;private int id;public User(String name, int id) {this.name = name;this.id = id;}public String getName() {return name;}public int getId() {return id;}public void setName(String name) {this.name = name;}public void setId(int id) {this.id = id;}
}

DataDataBean

package com.example.zonghe.bean;import java.util.List;/*** Created by Administrator on 2017/11/20.*/public class DataDataBean {/*** code : 1* width : 0* success : true* height : 0* data : [{"topTime":1469503026000,"recommend":0,"url":"http://www.yulin520.com/a2a/h5/impress/i1/334?a=1511162126397","createTime":1466160199000,"hxKey":"60fd9c2377f81ba1ccca450fb794e016","img":"http://img1.yulin520.com/news/HPUCVP74IFR0OKCZ9QQH.jpg#405_304","yulin":"81373","star":58,"title":"刘峰鸣 :能文能武,Call Me峰鸣哥","occupation":"证劵投资","userImg":"http://img1.yulin520.com/news/HPUCVP74IFR0OKCZ9QQH.jpg#405_304","impressEditId":334,"impressType":0,"remark":"","click":0,"introduction":"83年/巨蟹座/ 开朗幽默,热情善良,追求刺激/喜欢温柔,体贴,可爱,善良的女孩/金融","replyTimes":17,"userAge":33,"userName":"刘LLL","source":0,"reporter":0,"status":1,"content":""},{"topTime":1469503022000,"recommend":0,"url":"http://www.yulin520.com/a2a/h5/impress/i1/319?a=1511162126397","createTime":1465380170000,"hxKey":"dac884f7cc81691ba28a004091cbe122","img":"http://img1.yulin520.com/news/BPKZUX0MNFR0OT0WLCOD.png#598_450","yulin":"80821","star":77,"title":"刘佳怡 :直白女汉子也有个文艺梦","occupation":"保险","userImg":"http://img1.yulin520.com/news/BPKZUX0MNFR0OT0WLCOD.png#598_450","impressEditId":319,"impressType":0,"remark":"","click":0,"introduction":"91年/处女座/性格直白,爱好广泛,有点女汉子/喜欢性格开朗,三观契合,高冷文艺范,有肌肉,175+/公司职业","replyTimes":12,"userAge":25,"userName":"嘉咦咦咦","source":0,"reporter":0,"status":1,"content":""},{"topTime":1468980785000,"recommend":0,"url":"http://www.yulin520.com/a2a/h5/impress/i1/324?a=1511162126397","createTime":1465722569000,"hxKey":"ebf75ccd1fba85f248988d40e572914e","img":"http://img1.yulin520.com/news/UPPN83L0IFR0OBC1A4AK.jpg#800_600","yulin":"80569","star":52,"title":"陈松 :爱搞新花样的设计师","occupation":"互联网","userImg":"http://img1.yulin520.com/news/UPPN83L0IFR0OBC1A4AK.jpg#800_600","impressEditId":324,"impressType":0,"remark":"","click":0,"introduction":"87年/处女座/善良可爱,安静温柔,爱独立思考/喜欢三观相似,经历相似,性格活泼的女孩/互联网设计师 ","replyTimes":13,"userAge":29,"userName":"Song","source":0,"reporter":0,"status":1,"content":""},{"topTime":1468980773000,"recommend":0,"url":"http://www.yulin520.com/a2a/h5/impress/i1/323?a=1511162126397","createTime":1465721939000,"hxKey":"580786532670bc072b0aeb795bd6ddc7","img":"http://img1.yulin520.com/news/SPPW8T9QHFR0OM3HID0X.jpg#1280_960","yulin":"80983","star":101,"title":"秦心 :外形不娇小,心思很细腻","occupation":"银行","userImg":"http://img1.yulin520.com/news/SPPW8T9QHFR0OM3HID0X.jpg#1280_960","impressEditId":323,"impressType":0,"remark":"","click":0,"introduction":"90年/天蝎座/爱美食,爱分享,有点内向/喜欢阳光,干净,175+的男孩子/银行接待","replyTimes":16,"userAge":26,"userName":"秦心","source":0,"reporter":0,"status":1,"content":""},{"topTime":1468574992000,"recommend":0,"url":"http://www.yulin520.com/a2a/h5/impress/i1/337?a=1511162126397","createTime":1466162998000,"hxKey":"37dee7aaed1862c64c4fe38d75ccd52a","img":"http://img1.yulin520.com/news/XPW8OZXMSFR0O015UA7D.jpg#598_597","yulin":"81316","star":55,"title":"温其堂 :细心温柔IT\u201c熊猫\u201d男","occupation":"互联网","userImg":"http://img1.yulin520.com/news/XPW8OZXMSFR0O015UA7D.jpg#598_597","impressEditId":337,"impressType":0,"remark":"","click":0,"introduction":"93年/水瓶座/温柔体贴,踏实细心/喜欢三观相符的女孩子/前端工程师","replyTimes":17,"userAge":23,"userName":"榴莲","source":0,"reporter":0,"status":1,"content":""},{"topTime":1468574986000,"recommend":0,"url":"http://www.yulin520.com/a2a/h5/impress/i1/340?a=1511162126397","createTime":1466500236000,"hxKey":"2a294b9ffd9fb38d7b5b8739c821720f","img":"http://img1.yulin520.com/news/RPZ58LLNXFR0OKFGFHGK.jpg#616_695","yulin":"81370","star":72,"title":"曾思慧: 爱冒险爱尖叫的真性情Girl","occupation":"银行","userImg":"http://img1.yulin520.com/news/RPZ58LLNXFR0OKFGFHGK.jpg#616_695","impressEditId":340,"impressType":0,"remark":"","click":0,"introduction":"92年/金牛座 /性格随和,自信大方/喜欢脾气好,爱运动,对人友好的男生/公司职员","replyTimes":13,"userAge":24,"userName":"pony","source":0,"reporter":0,"status":1,"content":""},{"topTime":1468203095000,"recommend":0,"url":"http://www.yulin520.com/a2a/h5/impress/i1/341?a=1511162126397","createTime":1466678686000,"hxKey":"9f2d5f4346dee0c4983cb77f9a1892e7","img":"http://img1.yulin520.com/news/NQ1HJD75IFR0OARCWFEG.jpg#501_499","yulin":"80908","star":34,"title":"杨辉: 挑战自我从早起开始","occupation":"市场推广","userImg":"http://img1.yulin520.com/news/NQ1HJD75IFR0OARCWFEG.jpg#501_499","impressEditId":341,"impressType":0,"remark":"","click":0,"introduction":"91年/巨蟹座/乐观开朗,沉稳内敛,机智幽默/喜欢温柔,体贴,孝顺的女生","replyTimes":11,"userAge":25,"userName":"拯救","source":0,"reporter":0,"status":1,"content":""},{"topTime":1467618377000,"recommend":0,"url":"http://www.yulin520.com/a2a/h5/impress/i1/244?a=1511162126397","createTime":1461738088000,"hxKey":"751120bb7102fa563f098ee8c33ecb67","img":"http://img1.yulin520.com/news/SO9EZSX0QC90ONZY8SVZ.jpg#619_650","yulin":"77323","star":46,"title":"蔡嘉纯:咱东北菇凉特开朗","occupation":"市场推广","userImg":"http://img1.yulin520.com/news/SO9EZSX0QC90ONZY8SVZ.jpg#619_650","impressEditId":244,"impressType":0,"remark":"","click":0,"introduction":"92年 狮子座/开朗东北妞/想开书店/公司职员","replyTimes":9,"userAge":24,"userName":"林bibibi","source":0,"reporter":0,"status":1,"content":""},{"topTime":1467367384000,"recommend":0,"url":"http://www.yulin520.com/a2a/h5/impress/i1/246?a=1511162126397","createTime":1461749927000,"hxKey":"785fd3ce68d2a280a99896946dc67bf2","img":"http://img1.yulin520.com/news/OOAA5UE7EC90OM4X4AQ7.jpg#800_600","yulin":"77479","star":41,"title":"李林:曾经的淘气小子","occupation":"信贷","userImg":"http://img1.yulin520.com/news/OOAA5UE7EC90OM4X4AQ7.jpg#800_600","impressEditId":246,"impressType":0,"remark":"","click":0,"introduction":"94年 水瓶座/曾经是淘气包/人缘好讲义气/金融业客户经理","replyTimes":11,"userAge":22,"userName":"李林","source":0,"reporter":0,"status":1,"content":""},{"topTime":1467367368000,"recommend":0,"url":"http://www.yulin520.com/a2a/h5/impress/i1/218?a=1511162126397","createTime":1460446369000,"hxKey":"406e5f1f020f65203d200b686cd11da3","img":"http://img1.yulin520.com/news/FNTQDAWAJKF0OGYIUMRO.jpg#800_600","yulin":"76330","star":53,"title":"唐政:眉清目秀好少年","occupation":"互联网","userImg":"http://img1.yulin520.com/news/FNTQDAWAJKF0OGYIUMRO.jpg#800_600","impressEditId":218,"impressType":0,"remark":"","click":0,"introduction":"91年 天蝎座/积极乐观/追求新奇事物/互联网销售经理","replyTimes":16,"userAge":25,"userName":"Truman✨","source":0,"reporter":0,"status":1,"content":""}]* message : null*/private int code;private int width;private boolean success;private int height;private Object message;private List<DataBean> data;public int getCode() {return code;}public void setCode(int code) {this.code = code;}public int getWidth() {return width;}public void setWidth(int width) {this.width = width;}public boolean isSuccess() {return success;}public void setSuccess(boolean success) {this.success = success;}public int getHeight() {return height;}public void setHeight(int height) {this.height = height;}public Object getMessage() {return message;}public void setMessage(Object message) {this.message = message;}public List<DataBean> getData() {return data;}public void setData(List<DataBean> data) {this.data = data;}public static class DataBean {/*** topTime : 1469503026000* recommend : 0* url : http://www.yulin520.com/a2a/h5/impress/i1/334?a=1511162126397* createTime : 1466160199000* hxKey : 60fd9c2377f81ba1ccca450fb794e016* img : http://img1.yulin520.com/news/HPUCVP74IFR0OKCZ9QQH.jpg#405_304* yulin : 81373* star : 58* title : 刘峰鸣 :能文能武,Call Me峰鸣哥* occupation : 证劵投资* userImg : http://img1.yulin520.com/news/HPUCVP74IFR0OKCZ9QQH.jpg#405_304* impressEditId : 334* impressType : 0* remark :* click : 0* introduction : 83年/巨蟹座/ 开朗幽默,热情善良,追求刺激/喜欢温柔,体贴,可爱,善良的女孩/金融* replyTimes : 17* userAge : 33* userName : 刘LLL* source : 0* reporter : 0* status : 1* content :*/private long topTime;private int recommend;private String url;private long createTime;private String hxKey;private String img;private String yulin;private int star;private String title;private String occupation;private String userImg;private int impressEditId;private int impressType;private String remark;private int click;private String introduction;private int replyTimes;private int userAge;private String userName;private int source;private int reporter;private int status;private String content;public long getTopTime() {return topTime;}public void setTopTime(long topTime) {this.topTime = topTime;}public int getRecommend() {return recommend;}public void setRecommend(int recommend) {this.recommend = recommend;}public String getUrl() {return url;}public void setUrl(String url) {this.url = url;}public long getCreateTime() {return createTime;}public void setCreateTime(long createTime) {this.createTime = createTime;}public String getHxKey() {return hxKey;}public void setHxKey(String hxKey) {this.hxKey = hxKey;}public String getImg() {return img;}public void setImg(String img) {this.img = img;}public String getYulin() {return yulin;}public void setYulin(String yulin) {this.yulin = yulin;}public int getStar() {return star;}public void setStar(int star) {this.star = star;}public String getTitle() {return title;}public void setTitle(String title) {this.title = title;}public String getOccupation() {return occupation;}public void setOccupation(String occupation) {this.occupation = occupation;}public String getUserImg() {return userImg;}public void setUserImg(String userImg) {this.userImg = userImg;}public int getImpressEditId() {return impressEditId;}public void setImpressEditId(int impressEditId) {this.impressEditId = impressEditId;}public int getImpressType() {return impressType;}public void setImpressType(int impressType) {this.impressType = impressType;}public String getRemark() {return remark;}public void setRemark(String remark) {this.remark = remark;}public int getClick() {return click;}public void setClick(int click) {this.click = click;}public String getIntroduction() {return introduction;}public void setIntroduction(String introduction) {this.introduction = introduction;}public int getReplyTimes() {return replyTimes;}public void setReplyTimes(int replyTimes) {this.replyTimes = replyTimes;}public int getUserAge() {return userAge;}public void setUserAge(int userAge) {this.userAge = userAge;}public String getUserName() {return userName;}public void setUserName(String userName) {this.userName = userName;}public int getSource() {return source;}public void setSource(int source) {this.source = source;}public int getReporter() {return reporter;}public void setReporter(int reporter) {this.reporter = reporter;}public int getStatus() {return status;}public void setStatus(int status) {this.status = status;}public String getContent() {return content;}public void setContent(String content) {this.content = content;}}
}

DataBean

package com.example.zonghe.bean;import java.util.List;/*** Created by Administrator on 2017/11/20.*/public class DataBean  {/*** code : 200* msg : success* newslist : [{"ctime":"2017-06-06 15:00","title":"真是很少见!日本一家银行只存姑娘不存钱","description":"明星花边","picUrl":"http://www.luanbian.com/d/file/lishi/yiyu/2017-06-05/small8681bec69f9c1d6a43ef920082d04bf21496647674.jpg","url":"http://www.luanbian.com//lishi/yiyu/25329.html"},{"ctime":"2017-06-06 14:08","title":"一曲成名红过刀郎,花200元赚得一亿利润!","description":"明星花边","picUrl":"http://www.luanbian.com/d/file/lishi/yiyu/2017-06-05/c7b6e163ab0cd2e73d73fa22d269cceb.jpg","url":"http://www.luanbian.com//lishi/yiyu/25331.html"},{"ctime":"2017-06-06 15:00","title":"香港四大天王谁居首?年轻时张学友颜值最低,老了却成功逆袭","description":"明星花边","picUrl":"http://www.luanbian.com/d/file/lishi/yiyu/2017-06-05/5da421cae36b825d7c19e00522c78654.jpg","url":"http://www.luanbian.com//lishi/yiyu/25332.html"},{"ctime":"2017-06-06 14:14","title":"安以轩嫁入千亿豪门,大S微博发酸这样说","description":"明星花边","picUrl":"http://www.luanbian.com/d/file/lishi/yiyu/2017-06-06/smalle2a960a265d59f8786c9e2f713266dc91496717348.jpg","url":"http://www.luanbian.com//lishi/yiyu/25333.html"},{"ctime":"2017-06-06 15:00","title":"\u201c国际明星\u201d英达父亲去世,不让亲儿子巴图参加","description":"明星花边","picUrl":"http://www.luanbian.com/d/file/lishi/yiyu/2017-06-06/smalla64e8251141b3ca2ac158247952993721496719684.jpg","url":"http://www.luanbian.com//lishi/yiyu/25334.html"},{"ctime":"2017-06-06 14:39","title":"村中寻一座明代古石桥,竟被告知在墙上?","description":"明星花边","picUrl":"http://www.luanbian.com/d/file/lishi/yiyu/2017-06-06/small0ba83f51849d3c9fbd73cc99fa2017a11496721103.jpg","url":"http://www.luanbian.com//lishi/yiyu/25335.html"},{"ctime":"2017-06-06 15:00","title":"流浪狗叼着刚出生的弃婴向路人求救,感动落泪","description":"明星花边","picUrl":"http://www.luanbian.com/d/file/lishi/yiyu/2017-06-06/small7c1f47cd2a87c73bcf9ab9352e5d25fd1496729645.jpg","url":"http://www.luanbian.com//lishi/yiyu/25336.html"},{"ctime":"2017-06-06 14:41","title":"入赘豪门做女婿的8大男星,刘德华周润发均在列","description":"明星花边","picUrl":"http://www.luanbian.com/d/file/lishi/yiyu/2017-06-02/fba8bd9a885bc13cfcfc3454f3d0889f.jpg","url":"http://www.luanbian.com//lishi/yiyu/25319.html"},{"ctime":"2017-06-06 15:00","title":"破洞牛仔裤隐藏巨大的危险,工人付出惨痛代价","description":"明星花边","picUrl":"http://www.luanbian.com/d/file/lishi/yiyu/2017-06-05/d85c3437f009bee056a06a8a7bcd0fb9.jpg","url":"http://www.luanbian.com//lishi/yiyu/25328.html"},{"ctime":"2017-06-06 15:00","title":"一条鱼抵一辆保时捷 标价268万元惊呆了网友","description":"明星花边","picUrl":"http://www.luanbian.com/d/file/lishi/yiyu/2017-06-05/small535838c27374b6be43a7ec865d2974281496650726.jpg","url":"http://www.luanbian.com//lishi/yiyu/25330.html"}]*/private int code;private String msg;private List<NewslistBean> newslist;public int getCode() {return code;}public void setCode(int code) {this.code = code;}public String getMsg() {return msg;}public void setMsg(String msg) {this.msg = msg;}public List<NewslistBean> getNewslist() {return newslist;}public void setNewslist(List<NewslistBean> newslist) {this.newslist = newslist;}public static class NewslistBean {/*** ctime : 2017-06-06 15:00* title : 真是很少见!日本一家银行只存姑娘不存钱* description : 明星花边* picUrl : http://www.luanbian.com/d/file/lishi/yiyu/2017-06-05/small8681bec69f9c1d6a43ef920082d04bf21496647674.jpg* url : http://www.luanbian.com//lishi/yiyu/25329.html*/private String ctime;private String title;private String description;private String picUrl;private String url;public String getCtime() {return ctime;}public void setCtime(String ctime) {this.ctime = ctime;}public String getTitle() {return title;}public void setTitle(String title) {this.title = title;}public String getDescription() {return description;}public void setDescription(String description) {this.description = description;}public String getPicUrl() {return picUrl;}public void setPicUrl(String picUrl) {this.picUrl = picUrl;}public String getUrl() {return url;}public void setUrl(String url) {this.url = url;}}
}

工具类
Utils

package com.example.zonghe.utils;import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.graphics.Bitmap;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.os.AsyncTask;import com.example.zonghe.R;
import com.nostra13.universalimageloader.cache.memory.impl.LruMemoryCache;
import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;
import com.nostra13.universalimageloader.core.assist.ImageScaleType;
import com.nostra13.universalimageloader.core.assist.QueueProcessingType;
import com.nostra13.universalimageloader.core.display.SimpleBitmapDisplayer;
import com.nostra13.universalimageloader.utils.StorageUtils;import java.io.BufferedReader;
import java.io.File;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;/*** 封装类** Created by Administrator on 2017/11/20.*/public class Utils {/*** 网上获取数据的方法* @param path   URL网址* @param context   上下文* @param shuju   接口回调*/public static void getData(final String path, Context context, final ShuJu shuju){AsyncTask<Void, Void, String> asyncTask = new AsyncTask<Void, Void, String>() {@Overrideprotected String doInBackground(Void... voids) {try {URL url = new URL(path);HttpURLConnection connection = (HttpURLConnection) url.openConnection();//设置connection.setRequestMethod("GET");connection.setReadTimeout(5000);connection.setConnectTimeout(5000);//获取int responseCode = connection.getResponseCode();if (responseCode == 200){InputStream inputStream = connection.getInputStream();String json = streamToString(inputStream, "utf-8");//返回return json;}} catch (Exception e) {e.printStackTrace();}return null;}@Overrideprotected void onPostExecute(String s) {shuju.getData(s);}};//执行asyncTask.execute();}/*** 字节流转换为字符流的方法* @param inputStream   要转换的字节流* @param charset   编码格式* @return*/private static String streamToString(InputStream inputStream,String charset) {try {InputStreamReader inputStreamReader = new InputStreamReader(inputStream,charset);BufferedReader bufferedReader = new BufferedReader(inputStreamReader);String s = null;StringBuilder builder = new StringBuilder();while ((s = bufferedReader.readLine()) != null){builder.append(s);}bufferedReader.close();return builder.toString();} catch (Exception e) {e.printStackTrace();}return  null;}/*** 图片异步加载的方法 --> ImageLoader*    需要设置依赖   nostra* @param context   上下文*/public static void init(Context context){File cacheDir = StorageUtils.getCacheDirectory(context);  //指定默认的硬盘(sd卡)的缓存文件夹路径//1.创建一个ImageLoaderConfiguration,,,图片加载器的配置对象ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(context).threadPoolSize(3) // default  线程池内加载的数量.threadPriority(Thread.NORM_PRIORITY - 2) // default 设置当前线程的优先级.tasksProcessingOrder(QueueProcessingType.FIFO) // default.denyCacheImageMultipleSizesInMemory()//1 TB = 1024GB 1G=1024MB 1M = 1024KB 1KB = 1024BYTE//LruMemoryCache,,lru最近最少使用算法...内部维护的是LinkedHashMap,,当一张图片最近很少使用的时候会从mao集合里面移除.memoryCache(new LruMemoryCache(2 * 1024 * 1024)) //指定内存缓存的大小,,2M,,可以通过自己的内存缓存实现.memoryCacheSize(2 * 1024 * 1024)  // 内存缓存的最大值.memoryCacheSizePercentage(13) // default//指定硬盘/磁盘缓存的路径// .diskCache(new UnlimitedDiskCache(cacheDir)) // default 可以自定义缓存路径.diskCacheSize(50 * 1024 * 1024) // 50 Mb sd卡(本地)缓存的最大值.diskCacheFileCount(100)  // 可以缓存的文件数量.defaultDisplayImageOptions(DisplayImageOptions.createSimple()) // default.writeDebugLogs() // 打印debug log.build(); //开始构建//2.对上面配置对象的初始化ImageLoader.getInstance().init(config);}/*** 适配器获得图片的方法* @return*/public static DisplayImageOptions getTuXing(){DisplayImageOptions options = new DisplayImageOptions.Builder().showImageOnLoading(R.mipmap.ic_launcher) // 设置图片下载期间显示的图片.showImageForEmptyUri(R.mipmap.ic_launcher) // 设置图片Uri为空或是错误的时候显示的图片.showImageOnFail(R.mipmap.ic_launcher) // 设置图片加载或解码过程中发生错误显示的图片.resetViewBeforeLoading(true)  // default 设置图片在加载前是否重置、复位.cacheInMemory(true) // default  设置下载的图片是否缓存在内存中.cacheOnDisk(true) // default  设置下载的图片是否缓存在SD卡中.considerExifParams(true) // default.imageScaleType(ImageScaleType.EXACTLY_STRETCHED) // default 设置图片以如何的编码方式显示.bitmapConfig(Bitmap.Config.RGB_565) // default 设置图片的解码类型.displayer(new SimpleBitmapDisplayer()) // default  还可以设置圆角图片new RoundedBitmapDisplayer(20),,圆形 new CircleBitmapDisplayer().build();return options;}/*** 判断网络连接是否已开* true 已打开  false 未打开*/public static boolean isConn(Context context){boolean bisConnFlag=false;ConnectivityManager conManager = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);NetworkInfo network = conManager.getActiveNetworkInfo();if(network!=null){bisConnFlag=conManager.getActiveNetworkInfo().isAvailable();}return bisConnFlag;}/*** 当判断当前手机没有网络时选择是否打开网络设置* @param context*/public static void showNoNetWorkDlg(final Context context) {AlertDialog.Builder builder = new AlertDialog.Builder(context);builder.setIcon(R.mipmap.ic_launcher)         //.setTitle(R.string.app_name)            //.setMessage("当前无网络").setPositiveButton("设置", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {// 跳转到系统的网络设置界面Intent intent = null;// 先判断当前系统版本if(android.os.Build.VERSION.SDK_INT > 10){  // 3.0以上intent = new Intent(android.provider.Settings.ACTION_WIRELESS_SETTINGS);}else{intent = new Intent();intent.setClassName("com.android.settings", "com.android.settings.WirelessSettings");}context.startActivity(intent);}}).setNegativeButton("知道了", null).show();}
}

ShuJu

package com.example.zonghe.utils;/*** Created by Administrator on 2017/11/20.*/public interface ShuJu {public void getData(String s);
}

Mybanner

package com.example.zonghe.utils;import android.content.Context;
import android.widget.ImageView;import com.youth.banner.loader.ImageLoader;/*** Created by Administrator on 2017/11/20.*/public class Mybanner extends ImageLoader{@Overridepublic void displayImage(Context context, Object path, ImageView imageView) {com.nostra13.universalimageloader.core.ImageLoader.getInstance().displayImage(path.toString(),imageView);}
}

Mygridview

package com.example.zonghe;import android.content.Context;
import android.util.AttributeSet;
import android.widget.GridView;/*** Created by Administrator on 2017/11/20.*/public class Mygridview extends GridView {public Mygridview(Context context) {super(context);}public Mygridview(Context context, AttributeSet attrs) {super(context, attrs);}public Mygridview(Context context, AttributeSet attrs, int defStyleAttr) {super(context, attrs, defStyleAttr);}@Overrideprotected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {int i = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2,MeasureSpec.AT_MOST);super.onMeasure(widthMeasureSpec, i);}
}

Myapp

package com.example.zonghe;import android.app.Application;import com.example.zonghe.utils.Utils;/*** Created by Administrator on 2017/11/20.*/public class Myapp extends Application {@Overridepublic void onCreate() {super.onCreate();Utils.init(this);}
}

RadioGroup+Fragment+PulltorefreshScrollView+GridView+侧拉菜单+TabLayout+ViewPager相关推荐

  1. TabLayout+Viewpager+Fragment实现分页滚动

    效果如上,顶部标签滚动底下的页面也跟着滚动 灰色的标签只是一个recyclerview装起来的 这里用TabLayout+Viewpager+Fragment实现 先看布局 <?xml vers ...

  2. Android实现一个简易的新闻列表APP(TabLayout+ViewPager+Fragment)

    Android实现一个简易的新闻列表APP(TabLayout+ViewPager+Fragment) 文章目录 Android实现一个简易的新闻列表APP(TabLayout+ViewPager+F ...

  3. TabLayout+ViewPager+Fragment中Fragment的可见和不可见问题

    场景 TabLayout+ViewPager+Fragment的使用过程中需要判断Fragment是否对用户可见,监听Fragment由不可见变为可见的事件 解决方案 重写Fragment的setUs ...

  4. Tablayout+ViewPager+Fragment 实现页面切换

    项目也快上线了,就来总结下Tablayout+ViewPager+Fragment 的使用啦 主activity public class DoSomethingAct extends BaseAct ...

  5. TabLayout+ViewPager+Fragment(内部:TabLayout+ViewPager+ Fragment)需要注意!!

    之前面试的时候,被面试官问道ViewPager嵌套ViewPager怎么处理的.我还一直在回答用最外层的vp的onInterceptTouchEvent来处理怎样怎样(注意是代码没有写过,就这样说了. ...

  6. TabLayout+ViewPager+Fragment实现切页展示

    写在前面 目前大多数的APP都采用的是几个Tab标签以及多个界面滑动的形式来提供多层次的交互体验,最为常用的做法就是采用TabLayout+ViewPager+Fragment的方式,最近在公司项目中 ...

  7. 使用TabLayout+ViewPager+Fragment实现切页展示

    使用TabLayout+ViewPager+Fragment是比较常见的实现切页展示的方式,本例是在fragment中实现主要代码 步骤: 1,定义TabLayout和ViewPager的布局 2,实 ...

  8. tabLayout+viewPager+fragment,当tab数目较少,能一屏展示时

    最近做了个推荐影片的APP,根据标签展示不同的视频列表,用遥控器上下左右按键来操作标签.当标签数目较少,能一屏展示时的代码如下: acivity_main.xml <?xml version=& ...

  9. 小牛的安卓笔记-----底部导航栏的实现以及用TabLayout+ViewPager+Fragment实现页面滑动切换

    昨夜西风凋碧树,独上高楼,望尽天涯路. 今天难得有时间,准备写一写我们在APP中经常用到的页面形式,废话不多说,直接一张图看看页面效果你就知道为啥是常用的页面形式.先看看逻辑和最后的效果是怎么样的: ...

  10. android radiogroup 底部菜单,Android底部菜单栏(RadioGroup+Fragment)美化

    众所周知,android的底部菜单栏太重要,平时项目一般都是需要用到的,但是网上关于这方面的demo做得太丑了,实在惨不忍睹,所以这里便用RadioGroup+Fragment的方式写了一个,顺便美化 ...

最新文章

  1. 40 个 SpringBoot 常用注解
  2. 从事GIS开发多年,2017年对GIS行业的心得,尤其对三维GIS的理解
  3. LA3177长城守卫
  4. springboot读取json文件_SpringBoot:配置文件属性读取
  5. ITCAST-C# 委托
  6. R语言tseries包
  7. H264 视频文件 帧格式 传输封装等 杂碎
  8. 睡眠音频分割及识别问题(十一)--基于Android的YAMNet音频识别(总结)
  9. C/C++02: Josephus问题
  10. 华为捐赠欧拉 共建数字基础设施开源操作系统
  11. 实体映射类库之ModelMapper
  12. CodeVS 1576 最长严格上升子序列 (DP)
  13. R语言与非参数统计(核密度估计)
  14. 网络安全 Security+(SY0-601)学习笔记
  15. Julia :关于函数返回类型::
  16. [转]remote object /data/media/clockworkmod/backup/ does not exist
  17. mysql 数据库 vc 编程简单示例
  18. 五、鼎捷T100生产管理之报工
  19. 力扣(leetcode)66.加一——c语言新手入门
  20. 手把手教你搭建自己的微信公众号

热门文章

  1. Python应用(四)其他功能(一)python将ppt导出高清图片
  2. lae界面开发工具入门之介绍八--消息转发器组件篇
  3. IDEA上tomcat日志输出乱码 淇℃伅 鏈嶅姟鍣ㄧ増鏈彿(锛 解决办法
  4. 【20191025】考试
  5. 实战02-selenium模拟QQ邮箱登录并批量爬取指定邮件的附件——体验版
  6. html5接金币游戏源码,利用HTML5实现Canvas聚宝盆接金币游戏
  7. iOS转向Flutter学习日记
  8. 树莓派3B+安装系统(Raspbian)以及配置环境
  9. 详解闲鱼推荐系统(长文收藏)
  10. 浩辰3D软件入门教程:如何创建零件?