多条目加载的适配器+多条目加载的页面(两者结合使用)

 
package bwei.com.day_0517_123;

//多条目加载的页面
import android.os.Bundle;
import android.support.annotation.NonNull;
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 com.google.gson.Gson;

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

import bwei.com.day_0517_123.adapter.MyBase;
import bwei.com.day_0517_123.bean.SheHuiBean;
import bwei.com.day_0517_123.https.ConHttp;
import bwei.com.day_0517_123.utils.HttpUtils;
import bwei.com.day_0517_123.view.XListView;

import static android.content.ContentValues.TAG;

public class Fragment01 extends Fragment  implements XListView.IXListViewListener{


    private XListView f1_xlistview;
    private MyBase  myBase;
     private  List<SheHuiBean.NewslistBean> list=new ArrayList<>();

     private int page=10;
    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {

        View view = inflater.inflate(R.layout.fragment01, container, false);

//获取id
        f1_xlistview = view.findViewById(R.id.f1_xlistview);

        f1_xlistview.setPullLoadEnable(true);
        f1_xlistview.setPullRefreshEnable(true);

        //设置监听
        f1_xlistview.setXListViewListener(this);
        return view;
    }

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

    //创建适配器
        myBase = new MyBase(getActivity(),list);
        f1_xlistview.setAdapter(myBase);
    //请求网络
        getDataForNet();
    }
    //   请求网络数据
    public void getDataForNet() {

        HttpUtils instance = HttpUtils.getInstance();
        String url_01=ConHttp.SHEHUI_URL+"key=48a7d7193e11bd2dd4a683b6e2f90a4f&num="+page;
        instance.get(url_01);


   instance.setHttpUtilsListener(new HttpUtils.HttpUtilListener() {
     @Override

     public void getSuccess(String json) {

         Gson gson = new Gson();
         SheHuiBean sheHuiBean = gson.fromJson(json, SheHuiBean.class);

         List<SheHuiBean.NewslistBean> list1 = sheHuiBean.getNewslist();
          if(page==10){

              list.clear();
              f1_xlistview.stopRefresh();
          }


           list.addAll(list1);
         //刷新是、适配器
         myBase.notifyDataSetChanged();;
         f1_xlistview.stopLoadMore();;
     }

     @Override
     public void getError(String error) {
         Log.d(TAG, "getError: "+error);
     }
 });

    }
    //监听事件
//刷新
    @Override
    public void onRefresh() {

         page=10;
         getDataForNet();
    }
//加载更多
    @Override
    public void onLoadMore() {

        page+=10;
        getDataForNet();
    }



}


//适配器
package bwei.com.day_0517_123.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.nostra13.universalimageloader.core.ImageLoader;

import java.util.List;

import bwei.com.day_0517_123.MyApp;
import bwei.com.day_0517_123.R;
import bwei.com.day_0517_123.bean.SheHuiBean;

public class MyBase extends BaseAdapter {

    private Context context;
    private List<SheHuiBean.NewslistBean> list;

    public MyBase(Context context, List<SheHuiBean.NewslistBean> list) {
        this.context = context;
        this.list = list;
    }

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

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

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


    @Override
    public View getView(int position, View convertView, ViewGroup parent) {

        int type = getItemViewType(position);

        switch (type) {


            case 0:
                ViewHolderLeft left;
                if (convertView == null) {

                    convertView = View.inflate(context, R.layout.mybase_left, null);

                    left = new ViewHolderLeft();
                    left.left_img = (ImageView) convertView.findViewById(R.id.left_img);
                    left.left_text = (TextView) convertView.findViewById(R.id.left_text);

                    convertView.setTag(left);

                } else {
                    left = (ViewHolderLeft) convertView.getTag();
                }
                //加载网络图片
                String pic1 = list.get(position).getPicUrl();
                ImageLoader.getInstance().displayImage(pic1, left.left_img, MyApp.getOptions());
                left.left_text.setText(list.get(position).getTitle());
                break;

            case 1:
                ViewHolderRight right;

                if (convertView == null) {
                    convertView = View.inflate(context, R.layout.mybase_rigth, null);
                    right = new ViewHolderRight();
                    right.right_img = (ImageView) convertView.findViewById(R.id.right_img);
                    right.right_text = (TextView) convertView.findViewById(R.id.right_text);

                    convertView.setTag(right);
                } else {
                    right = (ViewHolderRight) convertView.getTag();
                }

                //加载网络图片
                String pic2 = list.get(position).getPicUrl();
                ImageLoader.getInstance().displayImage(pic2, right.right_img, MyApp.getOptions());
                right.right_text.setText(list.get(position).getTitle());
                break;


        }

        return convertView;
    }


    class ViewHolderLeft {
        ImageView left_img;
        TextView left_text;


    }


    class ViewHolderRight {
        ImageView right_img;
        TextView right_text;


    }
}




 












评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值