XListView

来源:互联网 发布:监听软件 编辑:程序博客网 时间:2024/06/08 18:53
<?xml version="1.0" encoding="utf-8"?><android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:app="http://schemas.android.com/apk/res-auto"    xmlns:tools="http://schemas.android.com/tools"    android:id="@+id/drawerLayout"    android:layout_width="match_parent"    android:layout_height="match_parent"    tools:context="com.bawei.chenkai.zhoukaoerlianxi.MainActivity">    <com.bwie.xlistviewlibrary.View.XListView        android:id="@+id/xlv"        android:layout_width="match_parent"        android:layout_height="match_parent"/>    <ListView        android:id="@+id/lv"        android:layout_width="match_parent"        android:layout_height="match_parent"        android:layout_gravity="start"        android:choiceMode="singleChoice" />

</android.support.v4.widget.DrawerLayout>

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical"    android:gravity="center"    >    <ImageView        android:id="@+id/image"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:background="@mipmap/ic_launcher"        />    <TextView        android:id="@+id/text1"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:textSize="20dp"        /></LinearLayout>
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:orientation="vertical" android:layout_width="match_parent"    android:layout_height="match_parent">    <TextView        android:id="@+id/text2"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:textSize="20dp"        /></LinearLayout>

GetJson

package com.bawei.chenkai.zhoukaoerlianxi;import java.io.IOException;import java.io.InputStream;import java.net.HttpURLConnection;import java.net.MalformedURLException;import java.net.URL;/** * Created by Administrator on 2017/10/11. */public class GetJson {    private String str="";    public String getJson(String JSON_URL){        try {            URL url=new URL(JSON_URL);            HttpURLConnection connection= (HttpURLConnection) url.openConnection();            connection.setConnectTimeout(5000);            connection.setReadTimeout(5000);            int rescode=connection.getResponseCode();            if(rescode==200){                InputStream inputStream=connection.getInputStream();                byte[] b=new byte[1024];                int index=0;                while((index=inputStream.read(b))!=-1){                    str+=new String(b,0,index);                }            }        } catch (MalformedURLException e) {            e.printStackTrace();        } catch (IOException e) {            e.printStackTrace();        }        return str;    }}

MainActivity

package com.bawei.chenkai.zhoukaoerlianxi;import android.os.AsyncTask;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.widget.ArrayAdapter;import android.widget.ListView;import android.widget.Toast;import com.bwie.xlistviewlibrary.View.XListView;import com.google.gson.Gson;import java.util.ArrayList;import java.util.List;public class MainActivity extends AppCompatActivity implements XListView.IXListViewListener{    private static final String JSON_URL="http://www.yulin520.com/a2a/impressApi/news/mergeList?pageSize=10&page=1";    private XListView xlistview;    private List<JavaBean.DataBean> list;    private MyAdapter adapter;    private ListView listview;    private List<String> dlist;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        xlistview=(XListView)findViewById(R.id.xlv);        listview=(ListView)findViewById(R.id.xlv);        xlistview.setPullLoadEnable(true);//设置可以刷新和加载        xlistview.setXListViewListener(this);        init();    }    public void init(){        dlist=new ArrayList<String>();        for (int i = 0; i < 10; i++) {            dlist.add("周考2练习"+i);        }        listview.setAdapter(new ArrayAdapter<String>(MainActivity.this,android.R.layout.simple_list_item_1,dlist));        //加载第一版数据        new AsyncTask<String,Integer,String>() {            @Override            protected String doInBackground(String... params) {                String str=new GetJson().getJson(JSON_URL);                return str;            }            @Override            protected void onPostExecute(String s) {                Gson gson=new Gson();                JavaBean javabean=gson.fromJson(s,JavaBean.class);                list=javabean.getData();                adapter=new MyAdapter(list,MainActivity.this);                xlistview.setAdapter(adapter);            }        }.execute();    }    /**     * 停止刷新或加载时     */    public void onLoad(){        xlistview.stopRefresh();        xlistview.stopLoadMore();        xlistview.setRefreshTime("刚刚");    }    /**     * 下拉会回调此方法,在次方法中写刷新的代码     */    @Override    public void onRefresh() {        Toast.makeText(this,"刷新",Toast.LENGTH_SHORT).show();        new AsyncTask<String,Integer,String>() {            @Override            protected String doInBackground(String... params) {                String str=new GetJson().getJson(JSON_URL);                return str;            }            @Override            protected void onPostExecute(String s) {                Gson gson=new Gson();                JavaBean javabean=gson.fromJson(s,JavaBean.class);                list=javabean.getData();                adapter=new MyAdapter(list,MainActivity.this);                xlistview.setAdapter(adapter);                onLoad();            }        }.execute();    }    /**     * 上拉到listview的最后一条显示出来,然后会调用此方法,在此方法中加载下一页数据     */    @Override    public void onLoadMore() {        new AsyncTask<String,Integer,String>() {            @Override            protected String doInBackground(String... params) {                String str=new GetJson().getJson(JSON_URL);                return str;            }            @Override            protected void onPostExecute(String s) {                Gson gson=new Gson();                JavaBean javabean=gson.fromJson(s,JavaBean.class);                List<JavaBean.DataBean> datalist=javabean.getData();                list.addAll(datalist);                adapter.notifyDataSetChanged();                onLoad();            }        }.execute();    }}

//适配器

package com.bawei.chenkai.zhoukaoerlianxi;import android.content.Context;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.ImageView;import android.widget.TextView;import com.nostra13.universalimageloader.core.ImageLoader;import java.util.List;/** * Created by Administrator on 2017/10/11. */public class MyAdapter extends BaseAdapter {    private List<JavaBean.DataBean> list;    private Context context;    private final int type0=0;    private final int type1=1;    public MyAdapter(List<JavaBean.DataBean> list, Context context) {        this.list = list;        this.context = context;    }    @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 int getViewTypeCount() {        return 2;    }    @Override    public int getItemViewType(int position) {        return position%2;    }    @Override    public View getView(int position, View convertView, ViewGroup parent) {        int i=getItemViewType(position);        Holder1 holder1;        Holder2 holder2;        switch (i){            case type0:                if(convertView==null){                    convertView=View.inflate(context,R.layout.item1,null);                    holder1=new Holder1();                    holder1.image=(ImageView)convertView.findViewById(R.id.image);                    holder1.text1=(TextView)convertView.findViewById(R.id.text1);                    convertView.setTag(holder1);                }else{                    holder1=(Holder1)convertView.getTag();                }                ImageLoader imageLoader=ImageLoader.getInstance();                imageLoader.displayImage(list.get(position).getImg(),holder1.image);                holder1.text1.setText(list.get(position).getTitle());                break;            case type1:                if(convertView==null){                    convertView=View.inflate(context,R.layout.item2,null);                    holder2=new Holder2();                    holder2.text2=(TextView)convertView.findViewById(R.id.text2);                    convertView.setTag(holder2);                }else{                    holder2=(Holder2)convertView.getTag();                }                holder2.text2.setText(list.get(position).getTitle());                break;        }        return convertView;    }    class Holder1{        ImageView image;        TextView text1;    }    class Holder2{        TextView text2;    }}

原创粉丝点击