XListView之多条目加载

来源:互联网 发布:windows清除arp 编辑:程序博客网 时间:2024/06/07 04:07
public class MainActivity extends AppCompatActivity implements XListView.IXListViewListener { private String s;    private XListView xlv;    private Base adapter;    private ArrayList<Data.ListBean> list;    private String path="http://qhb.2dyt.com/Bwei/news?page=11&postkey=1503d&type=";    private int type=1;    private Handler handler =new Handler(){     @Override     public void handleMessage(Message msg) {         s = msg.obj.toString();         Gson gson = new Gson();         Data data = gson.fromJson(s, Data.class);         list.addAll(data.getList());         adapter.notifyDataSetChanged();     } };    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        list = new ArrayList<>();        xlv = (XListView) findViewById(R.id.xlv);        xlv.setPullLoadEnable(true);        xlv.setXListViewListener(this);        loard();        adapter = new Base(list,this);        xlv.setAdapter(adapter);    }    private void loard() {        new Thread(){            @Override            public void run() {                String s = Utils.parmrs(path+type);                Message msg = Message.obtain();                msg.obj =s;                handler.sendMessage(msg);            }        }.start();    }    @Override    public void onRefresh() {        handler.postDelayed(new Runnable() {            @Override            public void run() {                Gson gson = new Gson();                Data data = gson.fromJson(s,Data.class);                list.addAll(0,data.getList());                adapter.notifyDataSetChanged();                stoploder();            }        },2000);    }    @Override    public void onLoadMore() {        handler.postDelayed(new Runnable() {            @Override            public void run() {                Gson gson = new Gson();                Data data = gson.fromJson(s,Data.class);                list.addAll(data.getList());                adapter.notifyDataSetChanged();                stoploder();                            }        },2000);    }    private void stoploder() {        xlv.stopRefresh();        xlv.stopLoadMore();    }    }
public class Base extends BaseAdapter {    private static final int TYPE_1 = 0;    private static final int TYPE_2 = 1;    private List<Data.ListBean> list;    private Context mContext;    public Base(List<Data.ListBean> list, Context context) {        this.list = list;        mContext = context;    }    @Override    public int getCount() {        return list.size();    }    @Override    public Object getItem(int i) {        return list.get(i);    }    @Override    public long getItemId(int i) {        return i;    }    @Override    public int getItemViewType(int position) {      /*  if (position % 2 == 0) {            return TYPE_1;        } else {            return TYPE_2;        }*/        if(list.get(position).getType()==1){            return TYPE_1;        } else {            return TYPE_2;        }    }    /**     * 指定你要加载的条目类型     *     * @return     */    @Override    public int getViewTypeCount() {        return 2;    }    @Override    public View getView(int i, View view, ViewGroup viewGroup) {        ViewHolder viewHolder = null;        ViewHolder2 viewHolder2 = null;        int type = getItemViewType(i);        switch (type) {            case TYPE_1: {                if (view == null) {//                    /iew = View.inflate(mContext, R.layout.activitytwo, null);                    viewHolder = new ViewHolder();                    view = view.inflate(mContext, R.layout.item, null);                    viewHolder.image1 = (ImageView) view.findViewById(R.id.image1);                    viewHolder.image2 = (ImageView) view.findViewById(R.id.image2);                    viewHolder.tvContent1 = (TextView) view.findViewById(R.id.text1);                    view.setTag(viewHolder);                } else {                    viewHolder = (ViewHolder) view.getTag();                }                viewHolder.tvContent1.setText(list.get(i).getTitle());                Glide.with(mContext).load(list.get(i).getPic()).into(viewHolder.image1);                Glide.with(mContext).load(list.get(i).getPic()).into(viewHolder.image2);            }            break;            case TYPE_2: {                if (view == null) {                    // view = View.inflate(mContext, R.layout.activitytwo, null);                    viewHolder2 = new ViewHolder2();                    view = view.inflate(mContext, R.layout.item2, null);                    viewHolder2.image3 = (ImageView) view.findViewById(R.id.image3);                    viewHolder2.tvContent2 = (TextView) view.findViewById(R.id.text2);                    viewHolder2.tvContent3 = (TextView) view.findViewById(R.id.text3);                    view.setTag(viewHolder2);                } else {                    viewHolder2 = (ViewHolder2) view.getTag();                }                viewHolder2.tvContent2.setText(list.get(i).getTitle());                viewHolder2.tvContent3.setText(list.get(i).getId()+"");                Glide.with(mContext).load(list.get(i).getPic()).into(viewHolder2.image3);            }            break;        }        return view;    }    static class ViewHolder {        TextView tvContent1;        ImageView image1, image2;    }    static class ViewHolder2 {        TextView tvContent2, tvContent3;        ImageView image3;    }}

原创粉丝点击