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