实现侧栏,为Xlistview获取网络数据

来源:互联网 发布:p2p网络管理器 编辑:程序博客网 时间:2024/06/04 18:51
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("刚刚");    }}