菜单对应的布局文件

布局  上拉下刷+listView展示

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

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

        <com.bwie.com.yuekaomoni.MyListView
            android:id="@+id/cd_lv"
            android:layout_width="match_parent"
            android:layout_height="match_parent"></com.bwie.com.yuekaomoni.MyListView>
    </com.handmark.pulltorefresh.library.PullToRefreshScrollView>

</RelativeLayout>
代码 

package com.bwie.com.yuekaomoni.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 android.widget.ListView;
import android.widget.ScrollView;

import com.bwie.com.yuekaomoni.R;
import com.bwie.com.yuekaomoni.adapter.MylistAdapter;
import com.bwie.com.yuekaomoni.bean.ResultData;
import com.bwie.com.yuekaomoni.utiles.MyTask;
import com.bwie.com.yuekaomoni.utiles.NetStateUtil;
import com.google.gson.Gson;
import com.handmark.pulltorefresh.library.PullToRefreshBase;
import com.handmark.pulltorefresh.library.PullToRefreshScrollView;

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


/**
 * Created by Administrator on 2018/1/16.
 */

public class MyFragment extends Fragment{

    private PullToRefreshScrollView ptrsv;
    private ListView lv;
    private String types="http://v.juhe.cn/toutiao/index?type=";
    private String key="&key=182c8145fcc241c8cbeb6656202ea881";
    String url;
    private int type=1;//1刷新  ,2加载
    private List<ResultData.ResultBean.DataBean> data=new ArrayList<>();
    private MylistAdapter mylistAdapter;

    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View view=inflater.inflate(R.layout.myfragment,container,false);
        ptrsv = view.findViewById(R.id.ptrsv);
        lv = view.findViewById(R.id.cd_lv);

        Bundle bundle=getArguments();
        String name=bundle.getString("type");
        url=types+name+key;

        //初始化数据
       initptrsvData();
        //请求网络数据
        requestNetData();
        //关闭头尾布局
        ptrsv.onRefreshComplete();
        return view;
    }

    private void initptrsvData() {
        ptrsv.setMode(PullToRefreshBase.Mode.BOTH);
        ptrsv.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ScrollView>() {
            @Override
            public void onPullDownToRefresh(PullToRefreshBase<ScrollView> pullToRefreshBase) {
                type=1;
                requestNetData();
                ptrsv.onRefreshComplete();
            }

            @Override
            public void onPullUpToRefresh(PullToRefreshBase<ScrollView> pullToRefreshBase) {
                type=2;
                requestNetData();
                ptrsv.onRefreshComplete();
            }
        });
    }

    private void requestNetData() {
        if (NetStateUtil.isConn(getActivity())){
            MyTask myTask=new MyTask(new MyTask.ICallBacks() {
                @Override
                public void getJson(String json) {
                    Gson gson=new Gson();
                    ResultData resultData = gson.fromJson(json, ResultData.class);
                    //将数据全部加载到集合中
                    data.addAll(resultData.getResult().getData());
                    //设置适配器
                    setLvAdapter();
                }
            });
            myTask.execute(url);
        }
    }

    private void setLvAdapter() {
        if (mylistAdapter==null){
            mylistAdapter = new MylistAdapter(getActivity(),data);
            lv.setAdapter(mylistAdapter);
        }else {
            mylistAdapter.notifyDataSetChanged();
        }
    }


}

对应的适配器

package com.bwie.com.yuekaomoni.adapter;

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

import com.bwie.com.yuekaomoni.R;
import com.bwie.com.yuekaomoni.bean.ResultData;
import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.assist.ImageScaleType;

import java.util.List;

/**
 * Created by Administrator on 2018/1/16.
 */

public class MylistAdapter extends BaseAdapter{
    private Context context;
    private List<ResultData.ResultBean.DataBean> data;
    DisplayImageOptions options;
    private int ONE=0;
    private int TWO=1;
    private int THREE=2;
    public MylistAdapter(Context context, List<ResultData.ResultBean.DataBean> data) {
        this.context=context;
        this.data=data;

        options=new DisplayImageOptions.Builder()
                .cacheInMemory(true)//使用内存缓存
                .cacheOnDisk(true)//使用磁盘缓存

                .showImageOnLoading(R.mipmap.ic_launcher)//设置正在下载的图片
                .showImageForEmptyUri(R.mipmap.ic_launcher)//url为空或请求的资源不存在时
                .showImageOnFail(R.mipmap.ic_launcher)//下载失败时显示的图片

                .bitmapConfig(Bitmap.Config.RGB_565)//设置图片色彩模式
                .imageScaleType(ImageScaleType.EXACTLY)//设置图片的缩放模式===imageView,,ScaleType
                //.displayer(new RoundedBitmapDisplayer(50))//设置图片圆角显示  弧度
                .build();
    }

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

    @Override
    public Object getItem(int i) {
        return data.get(i);
    }

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

    @Override
    public int getViewTypeCount() {
        return 3;
    }

    @Override
    public int getItemViewType(int position) {
        String pic_01=data.get(position).getThumbnail_pic_s();
        String pic_02=data.get(position).getThumbnail_pic_s02();
        String pic_03=data.get(position).getThumbnail_pic_s03();
        if (pic_01!=null && pic_02==null&& pic_03==null){
            return ONE;
        }else if (pic_01!=null&&pic_02!=null&&pic_03==null){
            return TWO;
        }else {
            return THREE;
        }
    }

    @Override
    public View getView(int i, View view, ViewGroup viewGroup) {
        int type = getItemViewType(i);
        if(type==ONE){
            ViewHolder holder;
            if(view==null){
                view=View.inflate(context, R.layout.item,null);
                holder = new ViewHolder();
                holder.title=view.findViewById(R.id.tv01);
                holder.pic_s=view.findViewById(R.id.img00);
                view.setTag(holder);
            }else{
                holder = (ViewHolder) view.getTag();
            }
            holder.title.setText(data.get(i).getTitle());
            ImageLoader.getInstance().displayImage(data.get(i).getThumbnail_pic_s(),holder.pic_s,options);
            return view;
        }else if(type==TWO){
            ViewHolder2 holder2;
            if(view==null){
                view=View.inflate(context, R.layout.item2,null);
                holder2 = new ViewHolder2();
                holder2.title2=view.findViewById(R.id.tv02);
                holder2.pic2_s=view.findViewById(R.id.img01);
                holder2.pic2_s02=view.findViewById(R.id.img02);
                view.setTag(holder2);
            }else{
                holder2 = (ViewHolder2) view.getTag();
            }
            holder2.title2.setText(data.get(i).getTitle());
            ImageLoader.getInstance().displayImage(data.get(i).getThumbnail_pic_s(),holder2.pic2_s,options);
            ImageLoader.getInstance().displayImage(data.get(i).getThumbnail_pic_s02(),holder2.pic2_s02,options);
            return view;

        }else{
            ViewHolder3 holder3;
            if(view==null){
                view=View.inflate(context, R.layout.item3,null);
                holder3 = new ViewHolder3();
                holder3.title3=view.findViewById(R.id.tv03);
                holder3.pic3_s=view.findViewById(R.id.img03);
                holder3.pic3_s02=view.findViewById(R.id.img04);
                holder3.pic3_s03=view.findViewById(R.id.img05);
                view.setTag(holder3);
            }else{
                holder3 = (ViewHolder3) view.getTag();
            }
            holder3.title3.setText(data.get(i).getTitle());
            ImageLoader.getInstance().displayImage(data.get(i).getThumbnail_pic_s(),holder3.pic3_s,options);
            ImageLoader.getInstance().displayImage(data.get(i).getThumbnail_pic_s02(),holder3.pic3_s02,options);
            ImageLoader.getInstance().displayImage(data.get(i).getThumbnail_pic_s03(),holder3.pic3_s03,options);
            return view;
        }


    }

    class ViewHolder{
        TextView title;
        ImageView pic_s;
    }
    class ViewHolder2{
        TextView title2;
        ImageView pic2_s;
        ImageView pic2_s02;
    }
    class ViewHolder3{
        TextView title3;
        ImageView pic3_s;
        ImageView pic3_s02;
        ImageView pic3_s03;
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值