public class MainActivity extends AppCompatActivity { XListView lv; MyAdapter adapter; List<Bean.ResultBean.BookListBean> list; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); lv = (XListView) findViewById(R.id.lv); adapter = new MyAdapter(MainActivity.this); lv.setAdapter(adapter); lv.setPullRefreshEnable(true); lv.setPullLoadEnable(true); lv.setXListViewListener(new XListView.IXListViewListener() { @Override public void onRefresh() { getData(false); } @Override public void onLoadMore() { getData(true); } }); getData(true); } private void getData(final boolean isAdd){ String path = "http://japi.juhe.cn/comic/book?key=cb6f43f49fe8e215361aa7a95559625d"; new HttpUtil().getDataFromServer(MainActivity.this, new RequestBean(path), new HttpUtil.DataCallBack() { @Override public void prosseData(String json) { Gson gson = new Gson(); Bean bean = gson.fromJson(json, Bean.class); list = bean.getResult().getBookList(); if(isAdd){ adapter.addData(list); }else{ adapter.updateData(list); } lv.stopRefresh(); lv.stopLoadMore(); } }); } }
public class MyAdapter extends BaseAdapter { List<Bean.ResultBean.BookListBean> list = new ArrayList<>(); Context context; final int a = 0; final int b = 1; public MyAdapter(Context context) { this.context = context; } public void addData(List<Bean.ResultBean.BookListBean> list) { this.list.addAll(list); notifyDataSetChanged(); } public void updateData(List<Bean.ResultBean.BookListBean> list) { this.list.clear(); addData(list); } @Override public int getCount() { return list.size(); } @Override public Object getItem(int position) { return null; } @Override public long getItemId(int position) { return 0; } @Override public int getItemViewType(int position) { if (list.get(position).getName().equals("靈神考試")) { return 0; } else { return 1; } } @Override public int getViewTypeCount() { return 2; } @Override public View getView(int position, View convertView, ViewGroup parent) { int type = getItemViewType(position); ViewHolder0 holder0 = null; ViewHolder1 holder1 = null; if (convertView == null) { switch (type) { case a: holder0 = new ViewHolder0(); convertView = View.inflate(context, R.layout.item0, null); holder0.tv1 = (TextView) convertView.findViewById(R.id.item0_1); holder0.tv2 = (TextView) convertView.findViewById(R.id.item0_2); convertView.setTag(holder0); break; case b: holder1 = new ViewHolder1(); convertView = View.inflate(context, R.layout.item1, null); holder1.tv3 = (TextView) convertView.findViewById(R.id.item1_1); holder1.tv4 = (TextView) convertView.findViewById(R.id.item1_2); convertView.setTag(holder1); break; default: break; } } else { switch (type) { case a: holder0 = (ViewHolder0) convertView.getTag(); break; case b: holder1 = (ViewHolder1) convertView.getTag(); break; default: break; } } String name = list.get(position).getName(); String area = list.get(position).getArea(); switch (type) { case a: holder0.tv1.setText(name); holder0.tv2.setText(area); break; case b: holder1.tv3.setText(name); holder1.tv4.setText(area); break; default: break; } return convertView; } class ViewHolder0 { TextView tv1, tv2; } class ViewHolder1 { TextView tv3, tv4; } }