无限轮播和xListView

//++++++++++OneFragment++++
JieKou和LunBo是对应的Bean类

import android.annotation.SuppressLint;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.support.v4.view.ViewPager;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Toast;
import com.bwie.asus.mn1.Bean.JieKou;
import com.bwie.asus.mn1.Bean.LunBo;
import com.bwie.asus.mn1.Utils.MyUtils;
import com.bwie.asus.mn1.adapter.ImageAdapter;
import com.bwie.asus.mn1.adapter.MyBaseAdapter;
import com.google.gson.Gson;

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

import xlistview.bawei.com.xlistviewlibrary.XListView;

public class OneFragment extends Fragment {
private int x=1;

private String lunbo="http://www.xieast.com/api/banner.php";
private String jiekou="http://172.17.8.100/movieApi/movie/v1/findHotMovieList?page="+x+"&count=10";
private List<JieKou.ResultBean> result=new ArrayList<>();
private ViewPager pager;
private XListView xListView;
private MyUtils myUtils;
private ImageAdapter adapter;
private MyBaseAdapter myBaseAdapter;
private MyAsyncTack myAsyncTack;
private View view;

@Nullable
@Override

public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.frag1, container, false);
pager = view.findViewById(R.id.pager);
xListView = view.findViewById(R.id.xlistView);
xListView.setPullLoadEnable(true);
xListView.setPullRefreshEnable(true);
myUtils = new MyUtils();
new Thread(){
@Override
public void run() {
super.run();
String data = myUtils.Data(lunbo);
Gson gson=new Gson();
LunBo lunBo = gson.fromJson(data, LunBo.class);
List<LunBo.DataBean> data1 = lunBo.getData();
adapter = new ImageAdapter(getActivity(),data1);
Message message=new Message();
message.what=0;
message.obj=adapter;

            handler.sendMessage(message);
        }
    }.start();
    myAsyncTack = new MyAsyncTack();
   myAsyncTack.execute(jiekou);
    xListView.setXListViewListener(new XListView.IXListViewListener() {
        
        public void onRefresh() {
            handler.postDelayed(new Runnable() {
                @Override
                public void run() {
                    x=1;
                    jiekou="http://172.17.8.100/movieApi/movie/v1/findHotMovieList?page="+x+"&count=10";
                            String data = myUtils.Data(jiekou);
                            Gson gson=new Gson();
                            JieKou kou = gson.fromJson(data, JieKou.class);
                            List<JieKou.ResultBean> result1 = kou.getResult();

                            result.addAll(result1);
                            handler.sendEmptyMessage(1);
                            result.clear();
                }
            },2000);
        }

    
    public void onLoadMore(){
        handler.postDelayed(new Runnable() {
            @Override
            public void run() {
                x++;
                jiekou="http://172.17.8.100/movieApi/movie/v1/findHotMovieList?page="+x+"&count=10";
                new Thread(){
                    @Override
                    public void run() {
                        super.run();
                        String data = myUtils.Data(jiekou);
                        Gson gson=new Gson();
                        JieKou jieKou = gson.fromJson(data, JieKou.class);
                        if (jieKou.getMessage().equals("查询成功")){
                            return;
                        }
                        List<JieKou.ResultBean> result1 = jieKou.getResult();
                        result.addAll(result1);
                        handler.sendEmptyMessage(1);

                    }
                }.start();
                handler.sendEmptyMessage(3);

            }
        },1000);
    }
});

   return view;

}
public class MyAsyncTack extends AsyncTask<String,Integer,Object>{

    @Override
    protected Object doInBackground(String... strings) {
        String tu=strings[0];
        String data = myUtils.Data(tu);
        return data;
    }

    @Override
    protected void onPostExecute(Object o) {
        super.onPostExecute(o);
        if (o!=null){
            String s= (String) o;
            Message message=new Message();
            message.what=6;
            message.obj=s;
            handler.sendMessage(message);
        }
    }
}

Handler handler=new Handler() {
    @Override
    public void handleMessage(Message msg) {
        super.handleMessage(msg);
        switch (msg.what) {
            case 0:
                ImageAdapter adapter = (ImageAdapter) msg.obj;
                pager.setAdapter(adapter);
                break;
            case 1:
                Toast.makeText(getActivity(),"下拉刷新"+result,Toast.LENGTH_LONG).show();
                myBaseAdapter.notifyDataSetChanged();
                   Close();
                break;
            case 3:
                Toast.makeText(getActivity(),"上拉加载"+result,Toast.LENGTH_LONG).show();
                myBaseAdapter.notifyDataSetChanged();
                Close();
                break;
            case 6:
                String s= (String) msg.obj;
                Gson gson=new Gson();
                JieKou jieKou= gson.fromJson(s,JieKou.class);
                List<JieKou.ResultBean>result = jieKou.getResult();
                myBaseAdapter=new MyBaseAdapter(getActivity(), (ArrayList<JieKou.ResultBean>) result);
                xListView.setAdapter(myBaseAdapter);
                break;
                    }
                   }
               };

private  void Close(){
    Date date=new Date();
    date.getTime();
    xListView.stopLoadMore();
    xListView.stopRefresh();
    xListView.setRefreshTime(""+date);
}

}

//++++++适配器(MyBaseAdapter)++++

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.asus.mn1.Bean.JieKou;
import com.bwie.asus.mn1.R;
import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoader;

import java.util.ArrayList;

public class MyBaseAdapter extends BaseAdapter {
private Context context;
private ArrayList<JieKou.ResultBean> list;

public MyBaseAdapter(Context context, ArrayList<JieKou.ResultBean> 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) {

    ViewHolder viewHolder=null;
    if (convertView==null){
        viewHolder=new ViewHolder();
        convertView = View.inflate(context, R.layout.xlist_item, null);
        viewHolder.imageView=convertView.findViewById(R.id.imageview);
        viewHolder.text1=convertView.findViewById(R.id.text1);
        viewHolder.text1=convertView.findViewById(R.id.text1);

        convertView.setTag(viewHolder);
    }else{
        viewHolder = (ViewHolder) convertView.getTag();
    }
    JieKou.ResultBean resultBean = list.get(position);
    //viewHolder.text1.setText(""+resultBean.getName());
   // viewHolder.text2.setText(""+resultBean.getRank());
    DisplayImageOptions options=new DisplayImageOptions.Builder()
            .bitmapConfig(Bitmap.Config.ARGB_4444)
            .cacheOnDisk(true).cacheInMemory(true)
            .build();
    ImageLoader.getInstance().displayImage(resultBean.getImageUrl(),viewHolder.imageView,options);


    return convertView;
}
class ViewHolder{
    TextView text1,text2;
    ImageView imageView;
}

}
/++++++适配器(ImageAdapter)++++

import android.content.Context;
import android.support.annotation.NonNull;
import android.support.v4.view.PagerAdapter;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;

import com.bwie.asus.mn1.Bean.LunBo;
import com.bwie.asus.mn1.OneFragment;
import com.squareup.picasso.Picasso;

import java.util.List;

public class ImageAdapter extends PagerAdapter {
private Context context;
private List<LunBo.DataBean> list;

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

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

@Override
public boolean isViewFromObject(@NonNull View view, @NonNull Object object) {
    return view==object;
}

@NonNull
@Override
public Object instantiateItem(@NonNull ViewGroup container, int position) {
    ImageView imageView=new ImageView(context);
    LunBo.DataBean dataBean = list.get(position);
    String icon = dataBean.getImg();
    Picasso.with(context).load(icon).into(imageView);
    container.addView(imageView);
    return imageView;
}

@Override
public void destroyItem(@NonNull ViewGroup container, int position, @NonNull Object object) {
    container.removeView((View) object);
}

}

//+++++++MyUtils++++++++
package com.bwie.asus.mn1.Utils;

import com.google.common.io.CharStreams;

import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;

public class MyUtils {
private static String string1;
public static String Data(final String string) {
try {
URL url = new URL(string);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod(“GET”);
connection.setConnectTimeout(3000);
connection.setReadTimeout(3000);
connection.connect();
int code = connection.getResponseCode();

        if (code == HttpURLConnection.HTTP_OK) {
            InputStream inputStream = connection.getInputStream();
           string1 = CharStreams.toString(new InputStreamReader(inputStream, "UTF-8"));
            string1.toString();
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
    return string1;
}

}
//++++++App+++++++++
在这里要清单注册

<uses-permission android:name=“android.permission.ACCESS_NETWORK_STATE” /+>
<uses-permission android:name=“android.permission.INTERNET”/+>
<uses-permission android:name=“android.permission.WRITE_EXTERNAL_STORAGE”/+>
<uses-permission android:name=“android.permission.READ_EXTERNAL_STORAGE”/+>

import android.app.Application;
import android.os.Environment;

import com.nostra13.universalimageloader.cache.disc.impl.UnlimitedDiskCache;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;

import java.io.File;
import java.io.IOException;

public class App extends Application {
@Override
public void onCreate() {
super.onCreate();
/File file = new File(Environment.getDataDirectory() + “/imagefile”);
try{
file.createNewFile();
}catch (IOException e){
e.printStackTrace();
}
/
/ImageLoaderConfiguration imageLoaderConfiguration=new ImageLoaderConfiguration.Builder(this);/
/.diskCache(new UnlimitedDiskCache(file)).build();/
ImageLoaderConfiguration loaderConfiguration = ImageLoaderConfiguration.createDefault(this);
ImageLoader.getInstance().init(loaderConfiguration);

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值