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; } }
XListView之多条目加载
最新推荐文章于 2019-01-06 18:03:11 发布
本文介绍了一个使用XListView实现下拉刷新和上拉加载更多功能的示例,并展示了如何创建一个自定义BaseAdapter来适配不同类型的列表项。
1011

被折叠的 条评论
为什么被折叠?



