封裝請求網絡數據 顯示XListView 加多條目展示

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;
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章