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("刚刚");
}
}