//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;
}
}