Bannner+XlistView+Pulltorefresh

布局

记得导banner包 implementation ‘com.youth.banner:banner:1.4.9’

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

<com.youth.banner.Banner
    android:id="@+id/banner"
    android:layout_width="match_parent"
    android:layout_height="300dp"/>
    <GridView
        android:id="@+id/gv"
        android:numColumns="2"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        />
    <com.handmark.pulltorefresh.library.PullToRefreshListView
        android:id="@+id/pull"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        />
</LinearLayout>

item1

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal"
    >
<ImageView
    android:id="@+id/imageview"
    android:layout_width="100dp"
    android:layout_height="100dp"
    android:src="@mipmap/ic_launcher"
    />
    <TextView
        android:id="@+id/text_view"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"

        />
    <TextView
        android:id="@+id/text_view1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"

        />
</LinearLayout>

MainActivity

package com.bawei.week3moni;

import android.content.Context;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.GridView;
import android.widget.ImageView;
import android.widget.ListView;

import com.bawei.week3moni.adapter.LGAdapter;
import com.bawei.week3moni.base.BaseAcyivity;
import com.bawei.week3moni.bean.CommodityListBean;
import com.bawei.week3moni.bean.JsonBean;
import com.bawei.week3moni.bean.JsonBean2;
import com.bawei.week3moni.bean.Two;
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;

public class MainActivity extends BaseAcyivity {


    private Banner banner;
    private GridView gridView;
    private PullToRefreshListView listView;
    private String bannerUrl = "https://api.apiopen.top/musicRankings?tdsourcetag=s_pcqq_aiomsg";
    private String listviewUrl = "http://172.17.8.100/small/commodity/v1/commodityList";
    @Override
    public int bindLayout() {
        return R.layout.activity_main;
    }

    @Override
    protected void initView() {
        banner = bindView(R.id.banner);
        gridView = bindView(R.id.gv);
        listView = bindView(R.id.pull);
        listView.setMode(PullToRefreshBase.Mode.BOTH);
        listView.setPullToRefreshOverScrollEnabled(true);
        listView.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() {
            @Override
            public void onPullDownToRefresh(PullToRefreshBase<ListView> refreshView) {
                //请求网络
                //刷新控件
                listView.onRefreshComplete();
            }

            @Override
            public void onPullUpToRefresh(PullToRefreshBase<ListView> refreshView) {
                //请求网络
                //把集合2的数据给集合1
                //刷新适配器
                    listView.onRefreshComplete();
            }
        });
    }

    @Override
    protected void initData() {
        //轮播图
      HttpUtil.httpAsynTask(bannerUrl, new HttpUtil.CallbackString() {
          @Override
          public void getData(String s) {
              Gson gson=new Gson();
              JsonBean bean = gson.fromJson(s, JsonBean.class);
              List<Two> result = bean.getResult();
              banner.setImages(result);
              banner.setImageLoader(new ImageLoader() {
                  @Override
                  public void displayImage(Context context, Object path, ImageView imageView) {
                    Two two= (Two) path;
                      Glide.with(MainActivity.this).load(two.getPic_s192()).into(imageView);

                  }
              });
              banner.isAutoPlay(true);
              banner.setDelayTime(3000);
              banner.start();
          }
      });
      //列表
        HttpUtil.httpAsynTask(listviewUrl, new HttpUtil.CallbackString() {
            @Override
            public void getData(String s) {
                Gson gson=new Gson();
                JsonBean2 bean = gson.fromJson(s, JsonBean2.class);
                JsonBean2.ResultBean result = bean.getResult();
                JsonBean2.ResultBean.MlssBean mlss = result.getMlss();
                JsonBean2.ResultBean.PzshBean pzsh = result.getPzsh();
                JsonBean2.ResultBean.RxxpBean rxxp = result.getRxxp();

                ArrayList<CommodityListBean> list=new ArrayList<>();
                list.addAll(mlss.getCommodityList());
                list.addAll(pzsh.getCommodityList());
                list.addAll(rxxp.getCommodityList());
                LGAdapter adapter=new LGAdapter(MainActivity.this,list);
                listView.setAdapter(adapter);
                //GridView
                gridView.setAdapter(adapter);

            }
        });

    }

    @Override
    protected void bindEvent() {
   /*  //下拉加载
        listView.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() {
            @Override
            public void onPullDownToRefresh(PullToRefreshBase<ListView> refreshView) {
                 HttpUtil.httpAsynTask(listviewUrl, new HttpUtil.CallbackString() {

                     private JsonBean2.ResultBean list;

                     @Override
                     public void getData(String s) {
                         Gson gson=new Gson();
                         JsonBean2 bean2 = gson.fromJson(s, JsonBean2.class);
                         list = bean2.getResult();
                         LGAdapter adapter=new LGAdapter(list,MainActivity.this);
                     }
                 });
            }

            @Override
            public void onPullUpToRefresh(PullToRefreshBase<ListView> refreshView) {

            }
        });*/
    }
}

HttpUtil

package com.bawei.week3moni;

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.MalformedURLException;
import java.net.URL;

import javax.security.auth.callback.Callback;

/**
 * @Author:Lenovo
 * @E-mail:
 * @Date:2019/2/15 19:33
 * @Description:描述信息
 */
public class HttpUtil {
    public  boolean isNet(Context context){
        if (context!=null){
            ConnectivityManager connectivityManager= (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
            NetworkInfo networkInfo=connectivityManager.getActiveNetworkInfo();
            if (networkInfo!=null){
                return networkInfo.isAvailable();
            }
        }
        return false;
    }
     public static void  httpAsynTask(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.setConnectTimeout(5000);
              connection.setReadTimeout(5000);
              InputStream stream=connection.getInputStream();
              BufferedReader reader=new BufferedReader(new InputStreamReader(stream,"utf-8"));
              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;
      }
}

记得导入bean包 自己定义的

base

baseActivity

package com.bawei.week3moni.base;

import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.FragmentActivity;
import android.view.View;

/**
 * @Author:Lenovo
 * @E-mail:
 * @Date:2019/2/15 19:33
 * @Description:描述信息
 */
public abstract class BaseAcyivity extends FragmentActivity {
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(bindLayout());
        initView();
        initData();
        bindEvent();

    }
    public  abstract int bindLayout();

    protected   abstract void initView();

    protected  abstract void  initData();
    protected abstract void bindEvent();

    protected <T extends View> T bindView(int resid){
        return  findViewById(resid);
    }

}

BaseFragment

package com.bawei.week3moni.base;

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;

/**
 * @Author:Lenovo
 * @E-mail:
 * @Date:2019/2/15 19:33
 * @Description:描述信息
 */
public abstract class BaseFragment  extends Fragment {
    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        return super.onCreateView(inflater, container, savedInstanceState);
    }
  protected  abstract  int bindLayout();

    @Override
    public void onActivityCreated(@Nullable Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
         initView();
         initData();
         bindEvent();
    }
    protected   abstract void initView();

    protected  abstract void  initData();
    protected abstract void bindEvent();

    protected <T extends View > T bindView(int resid){
        return (T) getView().findViewById(resid);
    }
}

LGAdapter

package com.bawei.week3moni.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.bawei.week3moni.R;
import com.bawei.week3moni.bean.CommodityListBean;
import com.bumptech.glide.Glide;

import java.util.ArrayList;

/**
 * @Author:Lenovo
 * @E-mail:
 * @Date:2019/2/15 19:33
 * @Description:描述信息
 */
public class LGAdapter extends BaseAdapter {
    private Context context;
    private ArrayList<CommodityListBean> list;

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

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

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

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

    @Override
    public View getView(int i, View view, ViewGroup viewGroup) {
        ViewHolder holder;
      if (view==null){
          view= View.inflate(context, R.layout.item1,null);
          holder=new ViewHolder();
          holder.imageView = view.findViewById(R.id.imageview);
          holder.textView=view.findViewById(R.id.text_view);
          holder.textView1=view.findViewById(R.id.text_view1);
              view.setTag(holder);
      }else{
         holder=(ViewHolder)view.getTag();
      }
    // holder.textView.setText(list.get(i).getSaleNum()+"");
   holder.textView.setText(list.get(i).getPrice()+"");
      holder.textView1.setText(list.get(i).getCommodityName());
        Glide.with(context).load(list.get(i).getMasterPic()).into(holder.imageView);

        return view;
    }
    class ViewHolder{
        private ImageView imageView;
        private TextView textView;
        private  TextView textView1;
    }
}

猜你喜欢

转载自blog.csdn.net/weixin_44668084/article/details/88075873