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;
}
}