xlistview多条目

//Main函数

import android.annotation.SuppressLint;
import android.os.AsyncTask;
import android.os.SystemClock;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

import com.google.gson.Gson;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.List;

import me.maxwin.view.XListView;

public class MainActivity extends AppCompatActivity {
     private XListView xlist;
     private String path="http://172.17.8.100/movieApi/movie/v1/findHotMovieList?count=10&page=1";
     private MyBase adapter;
     private int page=1;
    @SuppressLint("StaticFieldLeak")
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        xlist=findViewById(R.id.xlist);
        adapter=new MyBase(this);
        xlist.setAdapter(adapter);
        xlist.setPullRefreshEnable(true);
        xlist.setPullLoadEnable(true);

     xlist.setXListViewListener(new XListView.IXListViewListener() {
         @Override
         public void onRefresh() {
              page=1;
              load();
         }

         @Override
         public void onLoadMore() {
             page++;
             load();

         }
     });
     load();



}

@SuppressLint("StaticFieldLeak")
private void load() {
    new AsyncTask<String,Void,List<Bean.ResultBean>>(){
        @Override
        protected List<Bean.ResultBean> doInBackground(String... strings) {
            SystemClock.sleep(1000);
            try {
                URL url=new URL(strings[0]);
                HttpURLConnection http= (HttpURLConnection) url.openConnection();
                int responseCode = http.getResponseCode();
                if(responseCode==200){
                    String result=string2(http.getInputStream());
                    Bean bean=new Gson().fromJson(result,Bean.class);
                    List<Bean.ResultBean> data = bean.getResult();
                    return data;
                }
            } catch (MalformedURLException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
            return null;
        }

        @Override
        protected void onPostExecute(List<Bean.ResultBean> list) {
            if(page==1){
                adapter.setdata(list);
            }else {
                adapter.adddata(list);
            }
            xlist.stopLoadMore();
            xlist.stopRefresh();
        }
    }.execute(path);
}
private String string2(InputStream inputStream) throws IOException {
    InputStreamReader in=new InputStreamReader(inputStream);
    BufferedReader br=new BufferedReader(in);
    StringBuilder builder=new StringBuilder();
    for(String t=br.readLine();t!=null;t=br.readLine()){
        builder.append(t);
    }
    return  builder.toString();
}

}
//适配器
package com.example.dell.lyy01;

import android.content.Context;
import android.graphics.Bitmap;
import android.view.LayoutInflater;
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.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.display.CircleBitmapDisplayer;
import com.nostra13.universalimageloader.core.display.RoundedBitmapDisplayer;
import com.nostra13.universalimageloader.utils.L;

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


class MyBase extends BaseAdapter {
    private Context context;
    private List<Bean.ResultBean> list;
  private final  int Count=2;
  private final int type1=0;
  private final int type2=1;

public MyBase(Context context){
    this.context=context;
    list=new ArrayList<>();
}
public void setdata(List<Bean.ResultBean> mlist){
    list.clear();
    list.addAll(mlist);
    notifyDataSetChanged();
}

public void adddata(List<Bean.ResultBean> mlist){
list.addAll(mlist);
notifyDataSetChanged();
}

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

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

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

@Override
public Bean.ResultBean 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) {
    ViewHolder holder;

    if (convertView==null){
        if (getItemViewType(position)==type1){
            convertView=LayoutInflater.from(context).inflate(R.layout.list1,parent,false);
        }else {
            convertView=LayoutInflater.from(context).inflate(R.layout.list2,parent,false);
        }

        holder=new ViewHolder();
        holder.image=convertView.findViewById(R.id.image);
        holder.text=convertView.findViewById(R.id.text);
        convertView.setTag(holder);
    }else {
        holder= (ViewHolder) convertView.getTag();
    }
    holder.text.setText(list.get(position).getSummary());
     if (holder.image!=null){
      DisplayImageOptions options=new DisplayImageOptions.Builder()
              .bitmapConfig(Bitmap.Config.ARGB_8888)
              .displayer(new CircleBitmapDisplayer(5))
              .displayer(new RoundedBitmapDisplayer(24))
              .build();
       ImageLoader.getInstance().displayImage(getItem(position).getImageUrl(),holder.image,options);
     }

    return convertView;
}
class ViewHolder{
    TextView text;
    ImageView image;
}

}

猜你喜欢

转载自blog.csdn.net/LYx_LYy/article/details/83961024