上下拉(XListView)

<com.bwie.xlistviewlibrary.view.XListView
    android:id="@+id/xlv"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">
</com.bwie.xlistviewlibrary.view.XListView>

public class Frag_01 extends Fragment {

String baseUrl = "http://api.expoon.com/AppNews/getNewsList/type/1/p/";
int page;
ArrayList<Product.DataBean> list = new ArrayList<Product.DataBean>();
private XListView xlistView;
private ImageLoader imageLoader;
private MyAdapter myAdapter;

@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.frag_01, container, false);
    //找控件
    xlistView = view.findViewById(R.id.xlist);
    imageLoader = ImageLoader.getInstance();
    //设置适配器
    myAdapter = new MyAdapter();
    xlistView.setAdapter(myAdapter);
    initData(page); //设置第一次加载page为0
    //设置 xlistView可以加载更多
    xlistView.setPullLoadEnable(true);
    /**
     * 设置上下拉的监听
     */
    xlistView.setXListViewListener(new XListView.IXListViewListener() {
        @Override
        public void onRefresh() {
            //下拉刷新
            list.clear();
            initData(0);
        }

        @Override
        public void onLoadMore() {
            //上拉加载更多
            page++;
            initData(page);
        }
    });
    return view;
}
//联网取数据
private void initData(int page) {
    String s = baseUrl + page;
    new MAyscTask().execute(s);
}

class MyAdapter extends BaseAdapter {

    @Override
    public int getItemViewType(int position) {
        return position % 2;
    }

    @Override
    public int getViewTypeCount() {
        return 2;
    }

    @Override
    public int getCount() {
        return list.size();
    }

    @Override
    public Object getItem(int position) {
        return list.get(position);
    }

    @Override
    public long getItemId(int position) {
        return position;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        int viewType = getItemViewType(position);
        switch (viewType) {
            case 0:
                ViewHolder01 vh01 = new ViewHolder01();
                if (convertView == null){
                    convertView = View.inflate(getActivity(),R.layout.item_list,null);
                    vh01.tv01 = convertView.findViewById(R.id.tv);
                    convertView.setTag(vh01);
                }else {
                    vh01 = (ViewHolder01) convertView.getTag();
                }
                //绑定数据
                Product.DataBean dataBean = list.get(position);
                vh01.tv01.setText(dataBean.getNews_summary());
                ImageView iv = convertView.findViewById(R.id.iv);
                DisplayImageOptions option = ImageLoaderUtils.getDisplayImageOption();
                imageLoader.displayImage(dataBean.getPic_url(),iv,option);

                break;
            case 1:
                ViewHolder02 vh02 = new ViewHolder02();
                if (convertView == null){
                    convertView = View.inflate(getActivity(),R.layout.item_list02,null);
                    vh02.tv02 = convertView.findViewById(R.id.tv02);
                    convertView.setTag(vh02);
                }else {
                    vh02 = (ViewHolder02) convertView.getTag();
                }
                //绑定数据
                Product.DataBean dataBean1 = list.get(position);
                vh02.tv02.setText(dataBean1.getNews_summary());
                break;
        }
        return convertView;
    }

    class ViewHolder01 {
        public TextView tv01;
    }
    class ViewHolder02{
        public TextView tv02;
    }
}

private class MAyscTask extends AsyncTask<String,Void,String> {
    @Override
    protected String doInBackground(String... strings) {
        String jsonString = NetWordUtils.getNetjson(strings[0]);
        return jsonString;
    }

    @Override
    protected void onPostExecute(String s) {
        super.onPostExecute(s);
        //开始解析
        Gson gson = new Gson();
        Product product = gson.fromJson(s, Product.class);
        List<Product.DataBean> data = product.getData();
        list.addAll(data);
        //刷新
        myAdapter.notifyDataSetChanged();
        //让刷新头部底部消失
        xlistView.setRefreshTime("刚刚");
        xlistView.stopRefresh();//让刷新头消失
        xlistView.stopLoadMore();//让刷新尾消失
    }
}

}

猜你喜欢

转载自blog.csdn.net/qq_43603798/article/details/83983272