Fragment+TabLayout+侧滑+Banner+Pulltorefresh+GridView+XListView多条目+上拉刷新下拉加载

activity_main布局

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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:orientation="vertical"
    tools:context=".MainActivity">

    <android.support.v4.widget.DrawerLayout
        android:id="@+id/draw"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

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

            <FrameLayout
                android:id="@+id/frag"
                android:layout_width="match_parent"
                android:layout_height="0dp"
                android:layout_weight="1" />

            <RadioGroup
                android:id="@+id/radioG"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="horizontal">

                <RadioButton
                    android:id="@+id/rb1"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:button="@null"
                    android:checked="true"
                    android:drawableTop="@drawable/sel"
                    android:gravity="center"
                    android:text="首页"/>

                <RadioButton
                    android:id="@+id/rb2"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:button="@null"
                    android:drawableTop="@drawable/sel"
                    android:gravity="center"
                    android:text="我的" />
            </RadioGroup>
        </LinearLayout>
        <!--侧滑-->
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_gravity="left"
            android:background="@drawable/dilireba1"
            android:gravity="center"
            android:orientation="vertical">

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="迪丽热巴"
                android:textColor="#ffffff"
                android:textSize="30sp" />
        </LinearLayout>
    </android.support.v4.widget.DrawerLayout>

</LinearLayout>

MainActivity

package weektest.baway.com.day7_2;

import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.FrameLayout;
import android.widget.RadioGroup;

import weektest.baway.com.day7_2.fragment.Frag1;
import weektest.baway.com.day7_2.fragment.Frag2;

public class MainActivity extends AppCompatActivity {

    private FrameLayout frag;
    private RadioGroup radioG;
    private Frag1 frag1;
    private Frag2 frag2;
    private FragmentManager manager;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        frag = findViewById(R.id.frag);
        radioG = findViewById(R.id.radioG);
        frag1 = new Frag1();
        frag2 = new Frag2();
        manager = getSupportFragmentManager();
        FragmentTransaction transaction = manager.beginTransaction();
        transaction.add(R.id.frag, frag1)
                .add(R.id.frag, frag2)
                .show(frag1)
                .hide(frag2)
                .commit();
        radioG.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(RadioGroup group, int checkedId) {
                FragmentTransaction transaction = manager.beginTransaction();
                switch (checkedId) {
                    case R.id.rb1:
                        transaction.show(frag1)
                                .hide(frag2);
                        break;
                    case R.id.rb2:
                        transaction.show(frag2)
                                .hide(frag1);
                        break;
                }
                transaction.commit();
            }
        });
    }
}

Fragment布局

<?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:background="#ecd3a0"
    android:orientation="vertical">

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

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

Fragment

package weektest.baway.com.day7_2.fragment;

import android.os.Bundle;
import android.support.annotation.NonNull;
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 java.util.ArrayList;

import weektest.baway.com.day7_2.R;
import weektest.baway.com.day7_2.adapter.TabAdapter;
import weektest.baway.com.day7_2.tablayout.Tab1;
import weektest.baway.com.day7_2.tablayout.Tab2;
import weektest.baway.com.day7_2.tablayout.Tab3;

public class Frag1 extends Fragment {

    private TabLayout tab;
    private ViewPager viewPager;

    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.frag1, container, false);
        tab = view.findViewById(R.id.tab);
        viewPager = view.findViewById(R.id.vp);
        ArrayList<Fragment> list = new ArrayList<>();
        list.add(new Tab1());
        list.add(new Tab2());
        list.add(new Tab3());
        String[] str = {"love", "贾武少雄","(#^.^#)"};
        TabAdapter adapter = new TabAdapter(getActivity().getSupportFragmentManager(), list, str);
        viewPager.setAdapter(adapter);
        tab.setupWithViewPager(viewPager);
        return view;
    }

}

TabAdapter适配器

package weektest.baway.com.day7_2.adapter;

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

import java.util.ArrayList;

public class TabAdapter extends FragmentPagerAdapter {
    ArrayList<Fragment> list;
    String[] str;

    public TabAdapter(FragmentManager fm, ArrayList<Fragment> list, String[] str) {
        super(fm);
        this.list = list;
        this.str = str;
    }

    @Override
    public Fragment getItem(int i) {
        return list.get(i);
    }

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

    @Nullable
    @Override
    public CharSequence getPageTitle(int position) {
        return str[position];
    }
}

HttpUtil

package weektest.baway.com.day7_2;

import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.os.AsyncTask;

import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;

public class HttpUtil {
    public  static boolean isNet(Context context){
        if (context!=null){
            ConnectivityManager mConnectivityManager =(ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
            NetworkInfo mNetworkInfo=mConnectivityManager.getActiveNetworkInfo();
            if (mNetworkInfo!=null){
                return mNetworkInfo.isAvailable();
            }
        }
        return false;
    }
public static void httpAsyncTask(String strUrl,final CallBackString backString){
        new AsyncTask<String,Integer,String>(){

            @Override
            protected String doInBackground(String... strings) {
                return httpGet(strings[0]);
            }

            @Override
            protected void onPostExecute(String s) {
                super.onPostExecute(s);
                backString.getData(s);
            }
        }.execute(strUrl);
}
    public interface CallBackString{
        void getData(String s);
    }
    public static String httpGet(String strUrl){
        try {
            URL url=new URL(strUrl);
            HttpURLConnection connection= (HttpURLConnection) url.openConnection();
            connection.setRequestMethod("GET");
            connection.setReadTimeout(5000);
            connection.setConnectTimeout(5000);
            InputStream stream=connection.getInputStream();
            BufferedReader reader=new BufferedReader(new InputStreamReader(stream));
            StringBuilder builder=new StringBuilder();
            String str="";
            while ((str=reader.readLine())!=null){
                builder.append(str);
            }
            connection.disconnect();
            return builder.toString();
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }
}

Banner+PullToRefreshListView+上拉加载下拉刷新布局(tab1)

<?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:background="@drawable/pink1"
    android:orientation="vertical">

    <com.youth.banner.Banner
        android:id="@+id/banner"
        android:layout_width="match_parent"
        android:layout_height="150dp" />

    <com.handmark.pulltorefresh.library.PullToRefreshListView
        android:id="@+id/pull"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1" />

</LinearLayout>

Banner+PullToRefreshListView+上拉加载下拉刷新(tab1)

package weektest.baway.com.day7_2.tablayout;

import android.content.Context;
import android.os.Bundle;
import android.support.annotation.NonNull;
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.ImageView;
import android.widget.ListView;

import com.bumptech.glide.Glide;
import com.google.gson.Gson;
import com.handmark.pulltorefresh.library.PullToRefreshBase;
import com.handmark.pulltorefresh.library.PullToRefreshListView;
import com.youth.banner.Banner;
import com.youth.banner.loader.ImageLoader;

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

import weektest.baway.com.day7_2.HttpUtil;
import weektest.baway.com.day7_2.R;
import weektest.baway.com.day7_2.adapter.PullAdapter;
import weektest.baway.com.day7_2.bean.BannerBean;
import weektest.baway.com.day7_2.bean.One;
import weektest.baway.com.day7_2.bean.PullBean;
import weektest.baway.com.day7_2.bean.Three;

public class Tab1 extends Fragment {

    private Banner banner;
    private ArrayList<One> list;
    String listUrl = "http://172.17.8.100/small/commodity/v1/commodityList";
    String bannerUrl = "https://api.apiopen.top/videoCategory";
    private PullToRefreshListView listView;

    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.tab1, container, false);
        banner = view.findViewById(R.id.banner);
        listView = view.findViewById(R.id.pull);
        listView.setMode(PullToRefreshListView.Mode.BOTH);
        listView.setScrollingWhileRefreshingEnabled(true);
        return view;
    }

    @Override
    public void onActivityCreated(@Nullable Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
        //轮播图
        HttpUtil.httpAsyncTask(bannerUrl, new HttpUtil.CallBackString() {
            @Override
            public void getData(String s) {
                Gson gson = new Gson();
                BannerBean bean = gson.fromJson(s, BannerBean.class);
                List<BannerBean.ResultBean.ItemListBean> list = bean.getResult().getItemList();
                banner.setImages(list);
                banner.setImageLoader(new ImageLoader() {
                    @Override
                    public void displayImage(Context context, Object path, ImageView imageView) {
                        BannerBean.ResultBean.ItemListBean bean1 = (BannerBean.ResultBean.ItemListBean) path;
                        Glide.with(context).load(bean1.getData().getIcon()).into(imageView);
                    }
                });
                banner.setDelayTime(3000);
                banner.isAutoPlay(true);
                banner.start();
            }
        });
        //列表
        HttpUtil.httpAsyncTask(listUrl, new HttpUtil.CallBackString() {
            @Override
            public void getData(String s) {
                Gson gson = new Gson();
                PullBean pullBean = gson.fromJson(s, PullBean.class);
                Three result = pullBean.getResult();
                ArrayList<One> commodityList = result.getMlss().getCommodityList();
                ArrayList<One> commodityList1 = result.getPzsh().getCommodityList();
                ArrayList<One> commodityList2 = result.getRxxp().getCommodityList();
                list = new ArrayList<>();
                list.addAll(commodityList);
                list.addAll(commodityList1);
                list.addAll(commodityList2);
                PullAdapter adapter = new PullAdapter(list, getActivity());
                listView.setAdapter(adapter);
            }
        });
        //上拉下拉刷新
        listView.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() {
            @Override
            public void onPullDownToRefresh(PullToRefreshBase<ListView> refreshView) {
                HttpUtil.httpAsyncTask(listUrl, new HttpUtil.CallBackString() {
                    @Override
                    public void getData(String s) {
                        Gson gson = new Gson();
                        PullBean pullBean = gson.fromJson(s, PullBean.class);
                        Three result = pullBean.getResult();
                        ArrayList<One> commodityList = result.getMlss().getCommodityList();
                        ArrayList<One> commodityList1 = result.getPzsh().getCommodityList();
                        ArrayList<One> commodityList2 = result.getRxxp().getCommodityList();
                        list = new ArrayList<>();
                        list.addAll(commodityList);
                        list.addAll(commodityList1);
                        list.addAll(commodityList2);
                        PullAdapter adapter = new PullAdapter(list, getActivity());
                        listView.setAdapter(adapter);
                        listView.onRefreshComplete();
                    }
                });
            }

            @Override
            public void onPullUpToRefresh(PullToRefreshBase<ListView> refreshView) {
                HttpUtil.httpAsyncTask(listUrl, new HttpUtil.CallBackString() {
                    @Override
                    public void getData(String s) {
                        Gson gson = new Gson();
                        PullBean pullBean = gson.fromJson(s, PullBean.class);
                        Three result = pullBean.getResult();
                        ArrayList<One> commodityList = result.getMlss().getCommodityList();
                        ArrayList<One> commodityList1 = result.getPzsh().getCommodityList();
                        ArrayList<One> commodityList2 = result.getRxxp().getCommodityList();
                        list = new ArrayList<>();
                        list.addAll(commodityList);
                        list.addAll(commodityList1);
                        list.addAll(commodityList2);
                        PullAdapter adapter = new PullAdapter(list, getActivity());
                        listView.setAdapter(adapter);
                        adapter.notifyDataSetChanged();
                        listView.onRefreshComplete();
                    }
                });
            }
        });

    }
}


item_pull布局

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

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

        <ImageView
            android:id="@+id/imageView"
            android:layout_width="120dp"
            android:layout_height="120dp"
            android:padding="20dp"
            android:src="@mipmap/ic_launcher" />

        <TextView
            android:id="@+id/price"
            android:layout_width="120dp"
            android:layout_height="35dp"
            android:gravity="center"
            android:text="PRICE"
            android:textSize="20sp" />
    </LinearLayout>

    <TextView
        android:id="@+id/textView"
        android:layout_width="0dp"
        android:layout_height="155dp"
        android:layout_weight="1"
        android:gravity="center_vertical"
        android:padding="20dp"
        android:text="TEXT"
        android:textSize="26sp" />
</LinearLayout>

PullAdapter适配器

package weektest.baway.com.day7_2.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.bumptech.glide.Glide;

import java.util.ArrayList;

import weektest.baway.com.day7_2.R;
import weektest.baway.com.day7_2.bean.One;

public class PullAdapter extends BaseAdapter {
    ArrayList<One> list;
    Context context;

    public PullAdapter(ArrayList<One> list, Context context) {
        this.list = list;
        this.context = context;
    }

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

    @Override
    public Object getItem(int position) {
        return null;
    }

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

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        ViewHolder holder = null;
        if (convertView== null) {
            convertView = View.inflate(context, R.layout.item_pull, null);
            holder = new ViewHolder();
            holder.imageView = (ImageView) convertView.findViewById(R.id.imageView);
            holder.textView = (TextView) convertView.findViewById(R.id.textView);
            holder.price = (TextView) convertView.findViewById(R.id.price);
            convertView.setTag(holder);
        } else {
            holder = (ViewHolder) convertView.getTag();
        }
        One bean = list.get(position);
        holder.textView.setText(bean.getCommodityName());
        holder.price.setText("价格:"+bean.getPrice());
        Glide.with(context).load(bean.getMasterPic()).into(holder.imageView);
        return convertView;
    }

    class ViewHolder {
     private    ImageView imageView;
       private TextView textView;
       private TextView price;
    }
}

GridView 网格布局(tab2)

<?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:background="#b7fce8"
    android:orientation="vertical">

    <GridView
        android:id="@+id/grid"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:numColumns="2"/>
</LinearLayout>

GridView (Tab2)

package weektest.baway.com.day7_2.tablayout;

import android.os.Bundle;
import android.support.annotation.NonNull;
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.AdapterView;
import android.widget.GridView;
import android.widget.Toast;

import com.google.gson.Gson;

import java.util.ArrayList;

import weektest.baway.com.day7_2.HttpUtil;
import weektest.baway.com.day7_2.R;
import weektest.baway.com.day7_2.adapter.GridAdapter;
import weektest.baway.com.day7_2.adapter.PullAdapter;
import weektest.baway.com.day7_2.bean.One;
import weektest.baway.com.day7_2.bean.PullBean;
import weektest.baway.com.day7_2.bean.Three;

public class Tab2 extends Fragment {

    private GridView gridView;
    String gridUrl = "http://172.17.8.100/small/commodity/v1/commodityList";

    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.tab2, container, false);
        gridView = view.findViewById(R.id.grid);

        return view;
    }

    @Override
    public void onActivityCreated(@Nullable Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
        //Grid
        HttpUtil.httpAsyncTask(gridUrl, new HttpUtil.CallBackString() {
            @Override
            public void getData(String s) {
                Gson gson = new Gson();
                PullBean pullBean = gson.fromJson(s, PullBean.class);
                Three result = pullBean.getResult();
                ArrayList<One> commodityList = result.getRxxp().getCommodityList();
                ArrayList<One> commodityList1 = result.getPzsh().getCommodityList();
                ArrayList<One> commodityList2 = result.getMlss().getCommodityList();
                final ArrayList<One> list = new ArrayList<>();
                list.addAll(commodityList);
                list.addAll(commodityList1);
                list.addAll(commodityList2);
                GridAdapter adapter = new GridAdapter(list, getActivity());
                gridView.setAdapter(adapter);
                gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
                    @Override
                    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                        Toast.makeText(getActivity(), "asdfghjkl",Toast.LENGTH_SHORT).show();
                    }
                });
            }
        });
    }
}

item_grid布局

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

    <ImageView
        android:id="@+id/imageView"
        android:layout_width="150dp"
        android:layout_height="150dp"
        android:padding="20dp"
        android:layout_gravity="center"
        android:src="@mipmap/ic_launcher" />

    <TextView
        android:id="@+id/textView"
        android:layout_width="match_parent"
        android:layout_height="45dp"
        android:text="text"
        android:padding="5dp"
        android:textSize="24dp" />
    <TextView
        android:id="@+id/price"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="price"
        android:textColor="#FB1343"
        android:textSize="26dp" />
</LinearLayout>

GridAdapter适配器

package weektest.baway.com.day7_2.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 android.widget.Toast;

import com.bumptech.glide.Glide;

import java.util.ArrayList;

import weektest.baway.com.day7_2.MainActivity;
import weektest.baway.com.day7_2.R;
import weektest.baway.com.day7_2.bean.One;

public class GridAdapter extends BaseAdapter {
    ArrayList<One> list;
    Context context;

    public GridAdapter(ArrayList<One> list, Context context) {
        this.list = list;
        this.context = context;
    }

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

    @Override
    public Object getItem(int position) {
        return null;
    }

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

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        ViewHolder holder;
        if (convertView == null) {
            convertView = View.inflate(context, R.layout.item_grid, null);
            holder = new ViewHolder();
            holder.imageView = (ImageView) convertView.findViewById(R.id.imageView);
            holder.textView = (TextView) convertView.findViewById(R.id.textView);
            holder.price = (TextView) convertView.findViewById(R.id.price);
            convertView.setTag(holder);
        } else {
            holder = (ViewHolder) convertView.getTag();
        }
        One one = list.get(position);
        holder.textView.setText(one.getCommodityName());
        holder.price.setText("¥" + one.getPrice());
        Glide.with(context).load(one.getMasterPic()).into(holder.imageView);
        return convertView;
    }

    class ViewHolder {
        ImageView imageView;
        TextView textView, price;
    }
}

XListView+上拉刷新下拉加载布局(tab3)

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

    <com.qy.xlistview.XListView
        android:id="@+id/xlist"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />
</LinearLayout>

XListView+上拉刷新下拉加载(Tab3)

package weektest.baway.com.day7_2.tablayout;

import android.os.Bundle;
import android.support.annotation.NonNull;
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.google.gson.Gson;
import com.qy.xlistview.XListView;

import java.util.List;

import weektest.baway.com.day7_2.HttpUtil;
import weektest.baway.com.day7_2.R;
import weektest.baway.com.day7_2.adapter.XlistAdapter;
import weektest.baway.com.day7_2.bean.XlistBean;

public class Tab3 extends Fragment {
    String xlistUrl = "http://api.expoon.com/AppNews/getNewsList/type/1/p/";
    private XListView listView;
    private XlistAdapter xlistAdapter;
    private List<XlistBean.DataBean> list;

    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.tab3, container, false);
        listView = view.findViewById(R.id.xlist);
        listView.setPullLoadEnable(true);
        listView.setXListViewListener(new XListView.IXListViewListener() {
            @Override
            public void onRefresh() {
                HttpUtil.httpAsyncTask(xlistUrl, new HttpUtil.CallBackString() {
                    @Override
                    public void getData(String s) {
                        Gson gson = new Gson();
                        XlistBean xlistBean = gson.fromJson(s, XlistBean.class);
                        list = xlistBean.getData();
                        xlistAdapter = new XlistAdapter(list, getActivity());
                        listView.setAdapter(xlistAdapter);
                        listView.stopRefresh();
                    }
                });
            }

            @Override
            public void onLoadMore() {
                HttpUtil.httpAsyncTask(xlistUrl, new HttpUtil.CallBackString() {
                    @Override
                    public void getData(String s) {
                        Gson gson = new Gson();
                        XlistBean xlistBean = gson.fromJson(s, XlistBean.class);
                        List<XlistBean.DataBean> list2 = xlistBean.getData();
                        list.addAll(list2);
                        listView.stopLoadMore();
                        listView.deferNotifyDataSetChanged();
                    }
                });
            }
        });
        return view;
    }

    @Override
    public void onActivityCreated(@Nullable Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
        HttpUtil.httpAsyncTask(xlistUrl, new HttpUtil.CallBackString() {
            @Override
            public void getData(String s) {
                Gson gson = new Gson();
                XlistBean xlistBean = gson.fromJson(s, XlistBean.class);
                list = xlistBean.getData();
                xlistAdapter = new XlistAdapter(list, getActivity());
                listView.setAdapter(xlistAdapter);
            }
        });
    }
}

item_xlist布局

<?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/imageView0"
        android:layout_width="100dp"
        android:layout_height="100dp"
        android:padding="20dp"
        android:src="@mipmap/ic_launcher" />

    <TextView
        android:id="@+id/textView0"
        android:layout_width="0dp"
        android:layout_height="100dp"
        android:layout_weight="1"
        android:gravity="center_vertical" />

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

    <TextView
        android:id="@+id/textView1"
        android:layout_width="0dp"
        android:layout_height="100dp"
        android:layout_weight="1"
        android:gravity="center_vertical" />

    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="100dp"
        android:layout_height="100dp"
        android:padding="20dp"
        android:src="@mipmap/ic_launcher" />
</LinearLayout>

XListAdapter适配器

package weektest.baway.com.day7_2.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.bumptech.glide.Glide;

import java.util.List;

import weektest.baway.com.day7_2.R;
import weektest.baway.com.day7_2.bean.XlistBean;

public class XlistAdapter extends BaseAdapter {
    List<XlistBean.DataBean> list;
    Context context;

    public XlistAdapter(List<XlistBean.DataBean> list, Context context) {
        this.list = list;
        this.context = context;
    }

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

    @Override
    public Object getItem(int position) {
        return null;
    }

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

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        int type = getItemViewType(position);
        switch (type) {
            case 0:
                ViewHolder0 holder0 = null;
                if (convertView == null) {
                    convertView = View.inflate(context, R.layout.item_xlist0, null);
                    holder0 = new ViewHolder0();
                    holder0.imageView0 = (ImageView) convertView.findViewById(R.id.imageView0);
                    holder0.textView0 = (TextView) convertView.findViewById(R.id.textView0);
                    convertView.setTag(holder0);
                } else {
                    holder0 = (ViewHolder0) convertView.getTag();
                }
                XlistBean.DataBean bean0 = list.get(position);
                holder0.textView0.setText(bean0.getNews_title());
                Glide.with(context).load(bean0.getPic_url()).into(holder0.imageView0);
                break;
            case 1:
                ViewHolder1 holder1 = null;
                if (convertView == null) {
                    convertView = View.inflate(context, R.layout.item_xlist1, null);
                    holder1 = new ViewHolder1();
                    holder1.imageView1 = (ImageView) convertView.findViewById(R.id.imageView1);
                    holder1.textView1 = (TextView) convertView.findViewById(R.id.textView1);
                    convertView.setTag(holder1);
                } else {
                    holder1 = (ViewHolder1) convertView.getTag();
                }
                XlistBean.DataBean bean1 = list.get(position);
                holder1.textView1.setText(bean1.getNews_title());
                Glide.with(context).load(bean1.getPic_url()).into(holder1.imageView1);
                break;
        }
        return convertView;
    }

    class ViewHolder0 {
        ImageView imageView0;
        TextView textView0;
    }

    class ViewHolder1 {
        ImageView imageView1;
        TextView textView1;
    }
//没有这两个,多条目效果可出不来哦
    @Override
    public int getViewTypeCount() {
        return 2;
    }

    @Override
    public int getItemViewType(int position) {
        return position % 2;
    }
}

BannerBean

自动生成

package weektest.baway.com.day7_2.bean;

import java.util.List;

public class BannerBean {

    private int code;
    private String message;
    private ResultBean result;

    public int getCode() {
        return code;
    }

    public void setCode(int code) {
        this.code = code;
    }

    public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
        this.message = message;
    }

    public ResultBean getResult() {
        return result;
    }

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

    public static class ResultBean {
      
        private boolean adExist;
        private int count;
        private int total;
        private List<ItemListBean> itemList;

        public boolean isAdExist() {
            return adExist;
        }

        public void setAdExist(boolean adExist) {
            this.adExist = adExist;
        }

        public int getCount() {
            return count;
        }

        public void setCount(int count) {
            this.count = count;
        }

        public int getTotal() {
            return total;
        }

        public void setTotal(int total) {
            this.total = total;
        }

        public List<ItemListBean> getItemList() {
            return itemList;
        }

        public void setItemList(List<ItemListBean> itemList) {
            this.itemList = itemList;
        }

        public static class ItemListBean {

            private int adIndex;
            private DataBean data;
            private int id;
            private String type;

            public int getAdIndex() {
                return adIndex;
            }

            public void setAdIndex(int adIndex) {
                this.adIndex = adIndex;
            }

            public DataBean getData() {
                return data;
            }

            public void setData(DataBean data) {
                this.data = data;
            }

            public int getId() {
                return id;
            }

            public void setId(int id) {
                this.id = id;
            }

            public String getType() {
                return type;
            }

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

            public static class DataBean {
           
                private String actionUrl;
                private String dataType;
                private String description;
                private boolean expert;
                private FollowBean follow;
                private String icon;
                private String iconType;
                private int id;
                private boolean ifPgc;
                private String title;

                public String getActionUrl() {
                    return actionUrl;
                }

                public void setActionUrl(String actionUrl) {
                    this.actionUrl = actionUrl;
                }

                public String getDataType() {
                    return dataType;
                }

                public void setDataType(String dataType) {
                    this.dataType = dataType;
                }

                public String getDescription() {
                    return description;
                }

                public void setDescription(String description) {
                    this.description = description;
                }

                public boolean isExpert() {
                    return expert;
                }

                public void setExpert(boolean expert) {
                    this.expert = expert;
                }

                public FollowBean getFollow() {
                    return follow;
                }

                public void setFollow(FollowBean follow) {
                    this.follow = follow;
                }

                public String getIcon() {
                    return icon;
                }

                public void setIcon(String icon) {
                    this.icon = icon;
                }

                public String getIconType() {
                    return iconType;
                }

                public void setIconType(String iconType) {
                    this.iconType = iconType;
                }

                public int getId() {
                    return id;
                }

                public void setId(int id) {
                    this.id = id;
                }

                public boolean isIfPgc() {
                    return ifPgc;
                }

                public void setIfPgc(boolean ifPgc) {
                    this.ifPgc = ifPgc;
                }

                public String getTitle() {
                    return title;
                }

                public void setTitle(String title) {
                    this.title = title;
                }

                public static class FollowBean {
                 
                    private boolean followed;
                    private int itemId;
                    private String itemType;

                    public boolean isFollowed() {
                        return followed;
                    }

                    public void setFollowed(boolean followed) {
                        this.followed = followed;
                    }

                    public int getItemId() {
                        return itemId;
                    }

                    public void setItemId(int itemId) {
                        this.itemId = itemId;
                    }

                    public String getItemType() {
                        return itemType;
                    }

                    public void setItemType(String itemType) {
                        this.itemType = itemType;
                    }
                }
            }
        }
    }
}

XListBean

自动生成

package weektest.baway.com.day7_2.bean;

import java.util.List;

public class XlistBean {

    private String info;
    private int status;
    private List<DataBean> data;

    public String getInfo() {
        return info;
    }

    public void setInfo(String info) {
        this.info = info;
    }

    public int getStatus() {
        return status;
    }

    public void setStatus(int status) {
        this.status = status;
    }

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

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

    public static class DataBean {

        private String news_id;
        private String news_summary;
        private String news_title;
        private String pic_url;

        public String getNews_id() {
            return news_id;
        }

        public void setNews_id(String news_id) {
            this.news_id = news_id;
        }

        public String getNews_summary() {
            return news_summary;
        }

        public void setNews_summary(String news_summary) {
            this.news_summary = news_summary;
        }

        public String getNews_title() {
            return news_title;
        }

        public void setNews_title(String news_title) {
            this.news_title = news_title;
        }

        public String getPic_url() {
            return pic_url;
        }

        public void setPic_url(String pic_url) {
            this.pic_url = pic_url;
        }
    }
}

PullBean

one

package weektest.baway.com.day7_2.bean;

public class One {
      /* "commodityId": 17,
               "commodityName": "化妆镜",
               "masterPic": "http://172.17.8.100/images/small/commodity/mzhf/mzgj/7/1.jpg",
               "price": 31,
               "saleNum": 0*/
      private int commodityId;
      private String commodityName;
      private String masterPic;
      private int price;
      private int saleNum;

    public int getCommodityId() {
        return commodityId;
    }

    public void setCommodityId(int commodityId) {
        this.commodityId = commodityId;
    }

    public String getCommodityName() {
        return commodityName;
    }

    public void setCommodityName(String commodityName) {
        this.commodityName = commodityName;
    }

    public String getMasterPic() {
        return masterPic;
    }

    public void setMasterPic(String masterPic) {
        this.masterPic = masterPic;
    }

    public int getPrice() {
        return price;
    }

    public void setPrice(int price) {
        this.price = price;
    }

    public int getSaleNum() {
        return saleNum;
    }

    public void setSaleNum(int saleNum) {
        this.saleNum = saleNum;
    }
}

two

package weektest.baway.com.day7_2.bean;

import java.util.ArrayList;

public class Two {
    /* "commodityList":
             "id": 1004,
            "name": "品质生活"*/
    private ArrayList<One> commodityList;
    private int id;
    private String name;

    public ArrayList<One> getCommodityList() {
        return commodityList;
    }

    public void setCommodityList(ArrayList<One> commodityList) {
        this.commodityList = commodityList;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

three

package weektest.baway.com.day7_2.bean;

public class Three {
    private Two mlss;
    private Two pzsh;
    private Two rxxp;

    public Two getMlss() {
        return mlss;
    }

    public void setMlss(Two mlss) {
        this.mlss = mlss;
    }

    public Two getPzsh() {
        return pzsh;
    }

    public void setPzsh(Two pzsh) {
        this.pzsh = pzsh;
    }

    public Two getRxxp() {
        return rxxp;
    }

    public void setRxxp(Two rxxp) {
        this.rxxp = rxxp;
    }
}

four

package weektest.baway.com.day7_2.bean;

public class PullBean {
    private String message;
    private Three result;
    private String status;

    public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
        this.message = message;
    }

    public Three getResult() {
        return result;
    }

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

    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }
}

猜你喜欢

转载自blog.csdn.net/weixin_44668058/article/details/88733681