主界面:
import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.os.AsyncTask; import android.support.v7.app.AlertDialog; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.BaseAdapter; import android.widget.ImageView; import android.widget.TextView; import com.bumptech.glide.Glide; import com.google.gson.Gson; import com.limxing.xlistview.view.XListView; import com.nostra13.universalimageloader.core.DisplayImageOptions; import com.youth.banner.Banner; import com.youth.banner.BannerConfig; import com.youth.banner.loader.ImageLoader; import java.io.InputStream; import java.io.OutputStream; import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.URL; import java.util.ArrayList; import java.util.List; public class MainActivity extends AppCompatActivity implements XListView.IXListViewListener { private Banner banner; //创建数组存放图片 private String string[] = {"https://img10.360buyimg.com/da/jfs/t4747/277/1368712300/170619/35098d7f/58f038e0N9b3a0ca5.jpg", "https://img14.360buyimg.com/da/jfs/t4915/21/1427207714/81116/b005bb06/58f08963Ndb295b3c.jpg", "https://img13.360buyimg.com/da/jfs/t4651/104/2867456043/68336/99da4c16/58f41eaeN5b614a63.jpg"}; private List<String> list; private XListView xlistview; private int index = 1; private boolean flag; private MyAdapter adapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //获得控件 banner = (Banner) findViewById(R.id.banner); xlistview = (XListView) findViewById(R.id.xlistview); xlistview.setPullLoadEnable(true); xlistview.setXListViewListener(this); //点击ITEN阻塞线程 xlistview.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { while (true){ } } }); //创建集合 list = new ArrayList<>(); //遍历集合 for (String s:string) { list.add(s); } banner.setImageLoader(new Glide1()); banner.setBannerStyle(BannerConfig.CIRCLE_INDICATOR); banner.setImages(list); banner.setDelayTime(2000); banner.start(); //对网络进行判断 if(Wangluo.isConnection(this)){ //获得数据 qingqiu("http://qhb.2dyt.com/Bwei/news",index+"",5+""); }else { //调用弹出框方法 show(); } } private void show() { AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this); builder.setMessage("没有网络,请设置网络"); builder.setNegativeButton("取消",null); builder.setPositiveButton("确定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { Intent intent = new Intent(); intent.setAction("android.settings.WIRELESS_SETTINGS"); startActivity(intent); } }); builder.create().show(); } //请求数据 private void qingqiu(String path,String page,String type) { new AsyncTask<String,Void,String>(){ @Override protected void onPostExecute(String s) { super.onPostExecute(s); if(s != null){ //解析JSON Gson gson = new Gson(); Bean bean = gson.fromJson(s, Bean.class); List<Bean.ListBean> list = bean.getList(); //适配器 if(adapter == null){ adapter = new MyAdapter(list); xlistview.setAdapter(adapter); }else { adapter.more(list,flag); adapter.notifyDataSetChanged(); } } } @Override protected String doInBackground(String... params) { try { String path = params[0]; String page = params[1]; String type = params[2]; URL url = new URL(path); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setRequestMethod("POST"); connection.setConnectTimeout(5000); connection.setReadTimeout(5000); OutputStream os = connection.getOutputStream(); os.write(("postkey=ff1d1AK&page="+page+"&type="+type).getBytes()); os.flush(); int code = connection.getResponseCode(); if(code == HttpURLConnection.HTTP_OK){ InputStream is = connection.getInputStream(); String json = Utils.read(is); System.out.println("====================="+json); return json; } } catch (Exception e) { e.printStackTrace(); } return null; } }.execute(path,page,type); } //上下拉刷新 @Override public void onRefresh() { ++index; qingqiu("http://qhb.2dyt.com/Bwei/news",index+"",5+""); flag = true; xlistview.stopRefresh(true); } @Override public void onLoadMore() { ++index; qingqiu("http://qhb.2dyt.com/Bwei/news",index+"",5+""); flag = false; xlistview.stopLoadMore(); } public class Glide1 extends ImageLoader{ @Override public void displayImage(Context context, Object path, ImageView imageView) { Glide.with(context).load(path).into(imageView); } } //适配器 class MyAdapter extends BaseAdapter{ private List<Bean.ListBean> list; public MyAdapter(List<Bean.ListBean> list){ this.list=list; } //对图片进行缓存 DisplayImageOptions options = new DisplayImageOptions.Builder() .cacheOnDisk(true) .cacheInMemory(true) .build(); public void more(List<Bean.ListBean> lists,boolean flag){ for (Bean.ListBean bean:lists) { if(flag){ list.add(0,bean); }else { list.add(bean); } } } @Override public int getCount() { return list != null?list.size():0; } @Override public Object getItem(int position) { return list.get(position); } @Override public long getItemId(int position) { return position; } @Override public int getItemViewType(int position) { if(list.get(position).getType() == 4){ return 0; }else { return 1; } } @Override public int getViewTypeCount() { return 2; } //优化 @Override public View getView(int position, View convertView, ViewGroup parent) { int type = getItemViewType(position); ViewHolder1 holder1 = null; ViewHolder2 holder2 = null; switch (type){ case 0:{ if(convertView == null){ convertView = View.inflate(MainActivity.this,R.layout.item1,null); holder1 = new ViewHolder1(); holder1.tv_text1 = (TextView) convertView.findViewById(R.id.tv_text1); holder1.img1 = (ImageView) convertView.findViewById(R.id.img1); holder1.img2 = (ImageView) convertView.findViewById(R.id.img2); holder1.img3 = (ImageView) convertView.findViewById(R.id.img3); holder1.img4 = (ImageView) convertView.findViewById(R.id.img4); convertView.setTag(holder1); }else { holder1 = (ViewHolder1) convertView.getTag(); } holder1.tv_text1.setText(list.get(position).getTitle()); String str = list.get(position).getPic(); String[] s1 = str.trim().split("\\|"); com.nostra13.universalimageloader.core.ImageLoader.getInstance().displayImage(s1[0],holder1.img1,options); com.nostra13.universalimageloader.core.ImageLoader.getInstance().displayImage(s1[1],holder1.img2,options); com.nostra13.universalimageloader.core.ImageLoader.getInstance().displayImage(s1[2],holder1.img3,options); com.nostra13.universalimageloader.core.ImageLoader.getInstance().displayImage(s1[3],holder1.img4,options); } break; case 1:{ if(convertView == null){ convertView = View.inflate(MainActivity.this,R.layout.item2,null); holder2 = new ViewHolder2(); holder2.tv_text2 = (TextView) convertView.findViewById(R.id.tv_text2); holder2.img5 = (ImageView) convertView.findViewById(R.id.img5); convertView.setTag(holder2); }else { holder2 = (ViewHolder2) convertView.getTag(); } holder2.tv_text2.setText(list.get(position).getTitle()); String str2 = list.get(position).getPic(); String[] s2 = str2.trim().split("\\|"); com.nostra13.universalimageloader.core.ImageLoader.getInstance().displayImage(s2[0],holder2.img5,options); } break; } return convertView; } } class ViewHolder1{ TextView tv_text1; ImageView img1; ImageView img2; ImageView img3; ImageView img4; } class ViewHolder2{ TextView tv_text2; ImageView img5; } }