XlistView多条目加载简单实现2

//MainActivity主页面


package com.bwie.Day11_Demo2.activity;

import android.os.Bundle;
import android.support.annotation.IdRes;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.view.ViewPager;
import android.widget.RadioGroup;

import com.bwie.Day11_Demo2.R;
import com.bwie.Day11_Demo2.adapter.MyFragmentAdapter;
import com.bwie.Day11_Demo2.fragment.fragment1;
import com.bwie.Day11_Demo2.fragment.fragment2;
import com.bwie.Day11_Demo2.fragment.fragment3;

import java.util.ArrayList;

import butterknife.ButterKnife;
import butterknife.InjectView;

public class MainActivity extends FragmentActivity {

    @InjectView(R.id.viewpage)
    ViewPager viewpage;
    @InjectView(R.id.rap)
    RadioGroup rap;
    private MyFragmentAdapter fragmentAdapter;
    private ArrayList<Fragment> list;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ButterKnife.inject(this);

        ArrayList<Fragment> list = new ArrayList<>();

        fragment1 fragment1 = new fragment1();
        fragment2 fragment2 = new fragment2();
        fragment3 fragment3 = new fragment3();

        list.add(fragment1);
        list.add(fragment2);
        list.add(fragment3);

        fragmentAdapter = new MyFragmentAdapter(getSupportFragmentManager(), list);

        viewpage.setAdapter(fragmentAdapter);

        viewpage.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
            @Override
            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

            }

            @Override
            public void onPageSelected(int position) {
                rap.check(rap.getChildAt(position).getId());
            }

            @Override
            public void onPageScrollStateChanged(int state) {

            }
        });

        rap.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(RadioGroup group, @IdRes int checkedId) {
                switch (checkedId) {

                    case R.id.rap1:
                        viewpage.setCurrentItem(0);
                        break;
                    case R.id.rap2:
                        viewpage.setCurrentItem(1);
                        break;
                    case R.id.rap3:
                        viewpage.setCurrentItem(2);
                        break;

                    default:

                        break;


                }
            }
        });

    }


}
//Fragment适配器

package com.bwie.Day11_Demo2.adapter;

import android.content.Context;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.PagerAdapter;
import android.view.View;

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

/**
 * Created by McGrady on 2018/7/15.
 */

public class MyFragmentAdapter extends FragmentPagerAdapter{

    private List<Fragment> list;

    public MyFragmentAdapter(FragmentManager fm, List<Fragment> list) {
        super(fm);
        this.list = list;
    }

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

    @Override
    public int getCount() {
        return list.size();
    }
}
//MyApp界面

package com.bwie.Day11_Demo2.app;

import android.app.Application;
import android.content.Context;

import com.bwei.imageloaderlibrary.utils.ImageLoaderUtils;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;

/**
 * Created by McGrady on 2018/7/15.
 */

public class MyApp extends Application {


    @Override
    public void onCreate() {
        super.onCreate();

        ImageLoaderConfiguration configuration = ImageLoaderUtils.getConfiguration(this);
        ImageLoader.getInstance().init(configuration);

    }
}
//HttpUtils工具类

package com.bwie.Day11_Demo2.Utils;

import android.os.AsyncTask;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.util.EntityUtils;

import java.io.IOException;



/**
 * Created by McGrady on 2018/7/15.
 */

public class HttpUtils {

    private static HttpUtils httpUtils;
    private httplisten httplisten;

    public static HttpUtils getInsentace(){
        if (httpUtils==null){

            httpUtils=new HttpUtils();

        }

        return  httpUtils;

    }

    public void getData(String url){


        MyAsyncTask myAsyncTask = new MyAsyncTask();
        myAsyncTask.execute(url);

    }
    public class  MyAsyncTask extends AsyncTask<String,Void,String>{


        @Override
        protected String doInBackground(String... params) {
            DefaultHttpClient client = new DefaultHttpClient();
            String path=params[0];
            HttpGet get=new HttpGet(path);
            try {
                HttpResponse response = client.execute(get);
                if (response.getStatusLine().getStatusCode()==200){

                    HttpEntity entity = response.getEntity();
                    String s = EntityUtils.toString(entity);
                    return s;
                }
            } catch (IOException e) {
                e.printStackTrace();
            }


            return null;
        }

        @Override
        protected void onPostExecute(String s) {
            super.onPostExecute(s);
            httplisten.getJsonData(s);
        }
    }

    public interface  httplisten{

        public void getJsonData(String json);

    }

    public void setHttplisten(HttpUtils.httplisten httplisten) {
        this.httplisten = httplisten;
    }
}
//多页面加载适配器


package com.bwie.Day11_Demo2.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.bwei.imageloaderlibrary.utils.ImageLoaderUtils;
import com.bwie.Day11_Demo2.R;
import com.bwie.Day11_Demo2.bean.Beans;
import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoader;

import java.util.List;

/**
 * Created by McGrady on 2018/7/15.
 */

public class MyListAdapter extends BaseAdapter{

    private List<Beans.DataBean> list;
    private Context context;




    private  final int ONE_ITEM = 0;
    private  final int TWO_ITEM = 1;
    private  final int THREE_ITEM = 2;





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

    @Override
    public int getItemViewType(int position) {
        String profile_image = list.get(position).getThumbnail_pic_s();
        String bimageuri = list.get(position).getThumbnail_pic_s02();
        String image1 = list.get(position).getThumbnail_pic_s03();

        if (profile_image !=null && bimageuri == null && image1 == null){
            return ONE_ITEM;
        }else if (profile_image !=null && bimageuri != null && image1 == null){
            return TWO_ITEM;
        }else if (profile_image !=null && bimageuri != null && image1 != null){
            return THREE_ITEM;
        }else {
            return ONE_ITEM;
        }


    }

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

    @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 itemViewType = getItemViewType(position);
        if (itemViewType == ONE_ITEM){
            OneViewHolder oneViewHolder ;

            if (convertView==null){
                oneViewHolder = new OneViewHolder();
                convertView = View.inflate(context, R.layout.item01_listview,null);
                oneViewHolder.item01_profile_image = (ImageView) convertView.findViewById(R.id.item01_url);
                oneViewHolder.text01 = (TextView) convertView.findViewById(R.id.title01);

                convertView.setTag(oneViewHolder);
            }else {
                oneViewHolder = (OneViewHolder) convertView.getTag();
            }
            DisplayImageOptions options = ImageLoaderUtils.getOptions();
            ImageLoader.getInstance().displayImage(list.get(position).getThumbnail_pic_s(),oneViewHolder.item01_profile_image, options);
            oneViewHolder.text01.setText(list.get(position).getTitle());

            return convertView;


        }else if(itemViewType == TWO_ITEM){

            TwoViewHolder twoViewHolder;
            if (convertView==null){
                twoViewHolder = new TwoViewHolder();
                convertView = View.inflate(context, R.layout.item02_listview,null);
                twoViewHolder.item02_profile_image = (ImageView) convertView.findViewById(R.id.item02_url);
                twoViewHolder.item02_bimageuri = (ImageView) convertView.findViewById(R.id.item02_img);
                twoViewHolder.text02 = (TextView) convertView.findViewById(R.id.title02);

                convertView.setTag(twoViewHolder);
            }else {
                twoViewHolder = (TwoViewHolder) convertView.getTag();
            }
            DisplayImageOptions options = ImageLoaderUtils.getOptions();
            ImageLoader.getInstance().displayImage(list.get(position).getThumbnail_pic_s02(),twoViewHolder.item02_profile_image,options);
            ImageLoader.getInstance().displayImage(list.get(position).getThumbnail_pic_s03(),twoViewHolder.item02_bimageuri,options);

            twoViewHolder.text02.setText(list.get(position).getTitle());

            return convertView;

        }else if (itemViewType == THREE_ITEM){
            ThreeViewHolder threeViewHolder;
            if (convertView==null){
                threeViewHolder = new ThreeViewHolder();
                convertView = View.inflate(context, R.layout.item03_listview,null);
                threeViewHolder.item03_profile_image = (ImageView) convertView.findViewById(R.id.item03_url);
                threeViewHolder.item03_bimageuri = (ImageView) convertView.findViewById(R.id.item03_img);
                threeViewHolder.item03_image1 = (ImageView) convertView.findViewById(R.id.item03_userImg);

                threeViewHolder.text03 = (TextView) convertView.findViewById(R.id.title03);

                convertView.setTag(threeViewHolder);
            }else {
                threeViewHolder = (ThreeViewHolder) convertView.getTag();
            }
            DisplayImageOptions options = ImageLoaderUtils.getOptions();
            ImageLoader.getInstance().displayImage(list.get(position).getThumbnail_pic_s(),threeViewHolder.item03_profile_image,options);
            ImageLoader.getInstance().displayImage(list.get(position).getThumbnail_pic_s02(),threeViewHolder.item03_bimageuri,options);
            ImageLoader.getInstance().displayImage(list.get(position).getThumbnail_pic_s03(),threeViewHolder.item03_image1,options);

            threeViewHolder.text03.setText(list.get(position).getTitle());

            return convertView;
        }

        return null;
    }


    class OneViewHolder{
        ImageView item01_profile_image;
        TextView text01;
    }

    class TwoViewHolder{
        ImageView item02_profile_image,item02_bimageuri;
        TextView text02;
    }

    class ThreeViewHolder{
        ImageView item03_profile_image,item03_bimageuri,item03_image1;
        TextView text03;
    }
}
//Fragment1

package com.bwie.Day11_Demo2.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.bwie.Day11_Demo2.R;
import com.bwie.Day11_Demo2.Utils.HttpUtils;
import com.bwie.Day11_Demo2.adapter.MyListAdapter;
import com.bwie.Day11_Demo2.bean.Beans;
import com.bwie.Day11_Demo2.view.XListView;
import com.google.gson.Gson;

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

import butterknife.ButterKnife;
import butterknife.InjectView;

/**
 * Created by McGrady on 2018/7/15.
 */

public class fragment1 extends Fragment {

    @InjectView(R.id.xlistview)
    XListView xlistview;

    private String path="http://www.xieast.com/api/news/news.php?page=";
    private int page=1;
    private HttpUtils httpUtils=HttpUtils.getInsentace();
    private MyListAdapter listAdapter;
    private List<Beans.DataBean> list=new ArrayList<Beans.DataBean>();

    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.fragment1, container, false);
        ButterKnife.inject(this, view);
        return view;
    }

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

    }

    private void getFromDataNetWork() {
        String url=path+page;

        httpUtils.getData(url);

        httpUtils.setHttplisten(new HttpUtils.httplisten() {
            @Override
            public void getJsonData(String json) {
                Gson gson = new Gson();
                Beans beans = gson.fromJson(json, Beans.class);

                List<Beans.DataBean> data = beans.getData();

                if (page==1){

                    list.clear();

                }
                list.addAll(data);

                listAdapter.notifyDataSetChanged();
                if (page==1){

                    xlistview.stopRefresh();

                }else{

                    xlistview.stopLoadMore();

                }
            }
        });

    }

    private void getFromId() {
        xlistview.setPullRefreshEnable(true);
        xlistview.setPullLoadEnable(true);
        xlistview.setXListViewListener(new XListView.IXListViewListener() {
            @Override
            public void onRefresh() {
                page=1;
                getFromDataNetWork();
            }

            @Override
            public void onLoadMore() {
                page+=1;
                getFromDataNetWork();
            }
        });

        listAdapter = new MyListAdapter(list,getActivity());
        xlistview.setAdapter(listAdapter);
    }

    @Override
    public void onDestroyView() {
        super.onDestroyView();
        ButterKnife.reset(this);
    }
}
//布局文件

item_layout1

package com.bwie.Day11_Demo2.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.bwie.Day11_Demo2.R;
import com.bwie.Day11_Demo2.Utils.HttpUtils;
import com.bwie.Day11_Demo2.adapter.MyListAdapter;
import com.bwie.Day11_Demo2.bean.Beans;
import com.bwie.Day11_Demo2.view.XListView;
import com.google.gson.Gson;

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

import butterknife.ButterKnife;
import butterknife.InjectView;

/**
 * Created by McGrady on 2018/7/15.
 */

public class fragment1 extends Fragment {

    @InjectView(R.id.xlistview)
    XListView xlistview;

    private String path="http://www.xieast.com/api/news/news.php?page=";
    private int page=1;
    private HttpUtils httpUtils=HttpUtils.getInsentace();
    private MyListAdapter listAdapter;
    private List<Beans.DataBean> list=new ArrayList<Beans.DataBean>();

    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.fragment1, container, false);
        ButterKnife.inject(this, view);
        return view;
    }

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

    }

    private void getFromDataNetWork() {
        String url=path+page;

        httpUtils.getData(url);

        httpUtils.setHttplisten(new HttpUtils.httplisten() {
            @Override
            public void getJsonData(String json) {
                Gson gson = new Gson();
                Beans beans = gson.fromJson(json, Beans.class);

                List<Beans.DataBean> data = beans.getData();

                if (page==1){

                    list.clear();

                }
                list.addAll(data);

                listAdapter.notifyDataSetChanged();
                if (page==1){

                    xlistview.stopRefresh();

                }else{

                    xlistview.stopLoadMore();

                }
            }
        });

    }

    private void getFromId() {
        xlistview.setPullRefreshEnable(true);
        xlistview.setPullLoadEnable(true);
        xlistview.setXListViewListener(new XListView.IXListViewListener() {
            @Override
            public void onRefresh() {
                page=1;
                getFromDataNetWork();
            }

            @Override
            public void onLoadMore() {
                page+=1;
                getFromDataNetWork();
            }
        });

        listAdapter = new MyListAdapter(list,getActivity());
        xlistview.setAdapter(listAdapter);
    }

    @Override
    public void onDestroyView() {
        super.onDestroyView();
        ButterKnife.reset(this);
    }
}
//item_layout2

<?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:layout_weight="2"
        >
        <ImageView
            android:id="@+id/item02_url"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />

        <ImageView
            android:id="@+id/item02_img"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />

    </LinearLayout>

    <TextView
        android:id="@+id/title02"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
</LinearLayout>
item_layout3

<?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:layout_weight="2"
        android:orientation="horizontal"
        >
        <ImageView
            android:id="@+id/item03_url"
            android:layout_width="0dp"
            android:layout_weight="1"
            android:layout_height="60dp"
            />

        <ImageView
            android:id="@+id/item03_img"
            android:layout_width="0dp"
            android:layout_weight="1"
            android:layout_height="60dp" />

        <ImageView
            android:id="@+id/item03_userImg"
            android:layout_width="0dp"
            android:layout_weight="1"
            android:layout_height="60dp" />

    </LinearLayout>


    <TextView
        android:id="@+id/title03"
        android:layout_width="wrap_content"
        android:layout_height="0dp"
        android:layout_weight="1"
        />
</LinearLayout>


猜你喜欢

转载自blog.csdn.net/qq_42045179/article/details/81058159