package com.bwei.ssp.zk2_lx; import android.os.AsyncTask; import android.os.Bundle; import android.support.v4.widget.DrawerLayout; import android.support.v7.app.AppCompatActivity; import android.view.View; import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.BaseAdapter; import android.widget.ImageView; import android.widget.ListView; import android.widget.TextView; import com.bwei.ssp.mylibrary.Tools; import com.bwei.ssp.mylibrary.View.XListView; import com.google.gson.Gson; import com.nostra13.universalimageloader.core.ImageLoader; import java.util.ArrayList; import java.util.List; public class MainActivity extends AppCompatActivity implements XListView.IXListViewListener { private XListView xlv; private ListView lv; private List<String> list =new ArrayList<>(); //定义一个离合为侧栏添加数据 private String url ="http://www.yulin520.com/a2a/impressApi/news/mergeList?pageSize=10&page="; //网络数据地址 pag为动态设置 private int page= 1; //默认页数为1 private List<Bean.DataBean> data; private Madapter adapter; private ImageLoader instance; //框架接收网络图片并传递给Listview private DrawerLayout layout; //侧栏布局文件 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); layout = (DrawerLayout) findViewById(R.id.drawer); xlv = (XListView) findViewById(R.id.xlv); lv = (ListView) findViewById(R.id.lv); list.add("王庆的爷爷是宋社鹏"); list.add("李志"); list.add("王庆"); list.add("宋社鹏"); //模拟假数据 ArrayAdapter<String> ad = new ArrayAdapter<>(MainActivity.this, android.R.layout.simple_expandable_list_item_1, list); //为ListView设置适配器并使用自带布局 lv.setAdapter(ad); lv.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) { layout.closeDrawer(lv); //设置点击事件当点击条目时关闭侧栏 } }); instance = ImageLoader.getInstance(); xlv.setXListViewListener(this); //设置可以上拉加载更多; xlv.setPullLoadEnable(true); initData(1); //定义网络接收数据方法方法 } private void initData(int page) { new MAsyzTask().execute(url+page); //为网络地址拼接页数 } class MAsyzTask extends AsyncTask<String,Void,String>{ @Override protected String doInBackground(String... strings) { return Tools.getJson(strings[0]); } @Override protected void onPostExecute(String s) { super.onPostExecute(s); Gson gson = new Gson(); Bean bean = gson.fromJson(s, Bean.class); data = bean.getData(); adapter= new Madapter(); xlv.setAdapter(adapter); } @Override protected void onProgressUpdate(Void... values) { super.onProgressUpdate(values); } } class Madapter extends BaseAdapter{ @Override public int getCount() { return data.size(); } @Override public Object getItem(int i) { return data.get(i); } @Override public long getItemId(int i) { return i; } @Override public int getViewTypeCount() { return 2; } @Override public int getItemViewType(int position) { return position%2; } @Override public View getView(int i, View view, ViewGroup viewGroup) { int type = getItemViewType(i); switch (type){ case 0: view = View.inflate(MainActivity.this, R.layout.x_item, null); TextView tv =(TextView)view.findViewById(R.id.tv); ImageView ig = (ImageView) view.findViewById(R.id.ig); tv.setText(data.get(i).getTitle()); break; case 1: view = View.inflate(MainActivity.this, R.layout.x_item, null); TextView tv1 =(TextView)view.findViewById(R.id.tv); ImageView ig1 = (ImageView) view.findViewById(R.id.ig); tv1.setText(data.get(i).getTitle()); instance.displayImage(data.get(i).getImg(),ig1); break; } return view; } } @Override public void onRefresh() { list.clear(); initData(1);//重新请求数据 xListViewUIComplete();//完成ui } /** * 上拉加载 */ @Override public void onLoadMore() { initData(page++); xListViewUIComplete();//完成ui } private void xListViewUIComplete() { //让刷新头消失 xlv.stopRefresh(); //让加载更多文字消失 xlv.stopLoadMore(); //设置刷新时间为"刚刚" xlv.setRefreshTime("刚刚"); } }