第5天

1.购物车的存储器     

2.显示购物车商品    

3.对商品分页进行封装   

4.商品排序功能的实现


一.将热卖商品加入购物车,然后对购物车中的商品进行显示

1.CartProvider的原理: 1.将ShoppingCart对象放入在内存中 put delete update 
    2.将内存中的对象转换成 List<ShoppingCart>集合 
   3.将List集合转换成json --> new Gson().toJson(carts)保存到sharedPreference中
   
   4.当初始化的时候,需要将sharedPreference中json---> new Gson().fromJson(json, new TypeToken<List<ShoppingCart>>(){ }.getType());变成List集合
   5.再将list集合转换成ShoppingCart对象放入到内存中
(这样下次put的时候就可以读取到内存中的对象执行操作)
/**
 * Created by asus on 2016/10/26.
 * 购物车
 */
public class CartProvider {
    public static final String CART_JSON = "cart_json";

    private Context mcontext;
    private SparseArray<ShoppingCart> datas = null;

    public CartProvider(Context context) {
        mcontext = context;
        datas = new SparseArray<>(10);//初始化10条数据类型于hashMap

        listToSparse();//初始化時就将本地中的数据放到内存中

    }

    //1.放对象到SparseArray集合中(内存)
    public void put(ShoppingCart cart) {

        //先判断datas里面的key是否有这个id,如果里面已经有了,就将count+1,没有的话就保存进去
        ShoppingCart temp = datas.get(cart.getId().intValue());

        if (temp != null) {
            temp.setCount(temp.getCount() + 1);
        } else {//没有就保存进去
            temp = cart;
            temp.setCount(1);//并设置为1
        }
        datas.put(cart.getId().intValue(), temp);

        commit();
    }

    //更新
    public void update(ShoppingCart cart) {

        datas.put(cart.getId().intValue(), cart);

        commit();

    }

    //删除
    public void delete(ShoppingCart cart) {

        datas.delete(cart.getId().intValue());

        commit();
    }

    public List<ShoppingCart> getAll() {


        return getDataFromLocal();
    }




    将内存对象存放在本地
    public void commit() {

        List<ShoppingCart> carts = sparseTolist();//获取list集合

        //toJson是将对象转换成json字符串,而fromjson是将json字符串转换成对象

        //必须转换成json,因为sharedPreference不支持list集合对象
        PreferencesUtils.putString(mcontext, CART_JSON, JSONUtil.toJSON(carts));

    }

    //从本地获取
    private List<ShoppingCart> getDataFromLocal() {
        String json = PreferencesUtils.getString(mcontext, CART_JSON);
        List<ShoppingCart> carts = null;
        if (json != null) {
            //这里解析的是List类型,所以当将SparseArray保存到本地的时候需要转换成List集合
            carts = JSONUtil.fromJson(json, new TypeToken<List<ShoppingCart>>() {
            }.getType());
        }
        return carts;
    }

    //1.将对象集合的数据添加到List集合中
    public List<ShoppingCart> sparseTolist() {
        int size = datas.size();
        List<ShoppingCart> list = new ArrayList<>(size);
        for (int i = 0; i < size; i++) {
            list.add(datas.valueAt(i));
        }
        return list;

    }

    //2.将list集合转换成对象集合
    private void listToSparse() {

        List<ShoppingCart> carts = getDataFromLocal();

        if (carts != null && carts.size() > 0) {

            for (ShoppingCart cart :
                    carts) {
                //防盗内存中
                datas.put(cart.getId().intValue(), cart);
            }
        }

    }

}


二.购物车页面




/**
 * 购物车页面
 */
public class CartFragment extends Fragment implements View.OnClickListener {

    @ViewInject(R.id.recycler_view)
    private RecyclerView mRecyclerView;

    @ViewInject(R.id.checkbox_all)
    private CheckBox mCheckBox;

    @ViewInject(R.id.txt_total)
    private TextView mTextTotal;

    @ViewInject(R.id.btn_order)
    private Button mBtnOrder;

    @ViewInject(R.id.btn_del)
    private Button mBtnDel;

    private CartProvider cartProvider;
    private CartAdapter mAdapter;
    private CnToolbar cntoolbar;
    private List<ShoppingCart> carts;

    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.fragment_cart, container, false);
        ViewUtils.inject(this, view);

        cartProvider = new CartProvider(getActivity());

        showData();
        return view;
    }

    private void showData() {

        carts = cartProvider.getAll();//1.获取所有的购物车商品

        mAdapter = new CartAdapter(carts,getActivity(),mCheckBox,mTextTotal);

        mRecyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
        mRecyclerView.addItemDecoration(new DividerItemDecoration(getActivity(),DividerItemDecoration.VERTICAL_LIST));
        mRecyclerView.setAdapter(mAdapter);
    }


    //当切换到cartfragment的时候刷新数据
    public void refreshData() {
        mAdapter.clearData();
        List<ShoppingCart> carts = cartProvider.getAll();
        mAdapter.addData(carts);
        mAdapter.checkListen();
    }

    //获取toolbar
    @Override
    public void onAttach(Context context) {
        super.onAttach(context);
        MainActivity activity = (MainActivity) context;
        cntoolbar = (CnToolbar) activity.findViewById(R.id.cntoolbar);

        cntoolbar.getmRightImageButton().setOnClickListener(this);
        cntoolbar.getmRightImageButton().setTag(ACTION_EDIT);//设置一个tag为编辑
    }


    private int ACTION_EDIT=1;
    private int ACTION_FINISH=2;

    /**
     *编辑的点击事件
     */
    @Override
    public void onClick(View v) {
        int action = (int) v.getTag();
        if(action==ACTION_EDIT){
            cntoolbar.getmRightImageButton().setText("完成");
            mTextTotal.setVisibility(View.GONE);//总数隐藏
            mBtnOrder.setVisibility(View.GONE);结算按钮
            mBtnDel.setVisibility(View.VISIBLE);//删除按钮
            cntoolbar.getmRightImageButton().setTag(ACTION_FINISH);//将tag设置为完成

            mCheckBox.setChecked(false);//全选按钮
            mAdapter.setAllCheckbox(false);


        }else if(action==ACTION_FINISH){
            cntoolbar.getmRightImageButton().setText("编辑");
            mTextTotal.setVisibility(View.VISIBLE);//总数隐藏
            mBtnOrder.setVisibility(View.VISIBLE);结算按钮
            mBtnDel.setVisibility(View.GONE);//删除按钮
            cntoolbar.getmRightImageButton().setTag(ACTION_EDIT);//将tag设置为编辑

            mCheckBox.setChecked(true);//全选按钮
            mAdapter.setAllCheckbox(true);
            mAdapter.showTotalPrice();
        }
    }

    //删除按钮的点击事件
    @OnClick(R.id.btn_del)
    public void delCart(View view){
        mAdapter.deleteSelected();
    }
}

2.购物车的适配器
/**
 * Created by asus on 2016/10/26.
 *
 *
 * 购物车的适配器(同时对页面的操作)
 */
public class CartAdapter extends BaseAdapter<ShoppingCart, BaseViewHolder> implements BaseAdapter.OnHotClickListener, View.OnClickListener {
    public static final String TAG = "CartAdapter";
    private CheckBox checkBox;//全选checkbox
    private TextView textView;
    private List<ShoppingCart> datas;
    private NumAddSupView numadd_sup;
    private CartProvider cartProvider;

    public CartAdapter(List<ShoppingCart> datas, Context context, final CheckBox checkBox, TextView tv) {
        super(datas, context, R.layout.template_cart);//recycleView的item
        this.checkBox = checkBox;
        this.textView = tv;
        this.datas = datas;
        cartProvider = new CartProvider(context);

        setHotClickListener(this);//item的点击事件
        checkBox.setOnClickListener(this);//权限按钮的点击事件
        showTotalPrice();//默认展示总价格
    }

    @Override
    public void bindData(BaseViewHolder viewHoder, final ShoppingCart shoppingCart) {
        viewHoder.getTextView(R.id.text_title).setText(shoppingCart.getName());
        viewHoder.getTextView(R.id.text_price).setText("¥" + shoppingCart.getPrice());
        SimpleDraweeView draweeView = (SimpleDraweeView) viewHoder.getView(R.id.drawee_view);
        draweeView.setImageURI(Uri.parse(shoppingCart.getImgUrl()));

        CheckBox checkBox = (CheckBox) viewHoder.getView(R.id.checkbox);
        //设置选择按钮
        checkBox.setChecked(shoppingCart.isChecked());

        //加减自定义控件
        numadd_sup = (NumAddSupView) viewHoder.getView(R.id.num_control);
        numadd_sup.setValue(shoppingCart.getCount());

        numadd_sup.setOnButtonClickListener(new NumAddSupView.OnButtonClickListener() {
            @Override//增加
            public void onAddclick(View view, int value) {
                shoppingCart.setCount(value);
                cartProvider.update(shoppingCart);
                showTotalPrice();
            }

            @Override//减少
            public void onsupclick(View view, int value) {
                shoppingCart.setCount(value);
                cartProvider.update(shoppingCart);
                showTotalPrice();
            }
        });

        showTotalPrice();//默认展示总价格
    }

    //获取总价格
    private float getTotalPrice() {
        float sum = 0;
        if (datas != null && datas.size() > 0)

            for (ShoppingCart cart : datas) {
                if (cart.isChecked())
                    sum += cart.getCount() * cart.getPrice();
            }
        return sum;
    }

    public void showTotalPrice() {

        float total = getTotalPrice();

        textView.setText(Html.fromHtml("合计: ¥<span style='color:#eb4f38'>" + total + "</span>"), TextView.BufferType.SPANNABLE);
    }

    //检查是否所有的都选中,如果都选中则设置全选
    public void checkListen() {
        int num = 0;
        int size = 0;
        if (datas != null) {
            size = datas.size();//所有的item的个数

            for (ShoppingCart cart : datas) {
                if (cart.isChecked()) {//如果选中了,就增加选择的个数
                    num++;
                }
            }
            if (num == size) {//如果选择的个数==总数,就设置全选
                checkBox.setChecked(true);
            } else {
                checkBox.setChecked(false);
            }
        }
    }

    //item的点击事件,点击选择或者取消,更新总数
    @Override
    public void onclick(View view, int position) {
        ShoppingCart shoppingCart = getItem(position);
        if (shoppingCart != null) {
            shoppingCart.setIsChecked(!shoppingCart.isChecked());//改变状态

            notifyDataSetChanged();

            checkListen();//检查如果都勾选了则设置全选

            showTotalPrice();//显示价格
        }
    }

    /**
     * 全选按钮的点击事件
     */
    @Override
    public void onClick(View v) {
        if (datas != null) {
            for (ShoppingCart cart : datas) {
                cart.setIsChecked(checkBox.isChecked());//如果全选按钮选中.则选中所有
            }
            notifyDataSetChanged();
        }
        showTotalPrice();
    }

    //根据传入的值设置每个按钮的状态
    public void setAllCheckbox(boolean show) {
        if (datas != null) {
            for (ShoppingCart cart : datas) {
                cart.setIsChecked(show);//如果全选按钮选中.则选中所有
            }
            notifyDataSetChanged();
        }
    }

    //删除选中的item
    public void deleteSelected() {

        if (datas != null && datas.size() > 0) {
            ArrayList<ShoppingCart> copys = new ArrayList<>();
            for (ShoppingCart cart : datas) {
                copys.add(cart);
            }
            for (ShoppingCart cart : copys) {
                if (cart.isChecked()) {
                    datas.remove(cart);
                    cartProvider.delete(cart);
                    notifyDataSetChanged();
                }
            }
        }
    }
}


三.每个recycleView都涉及到了分页的操作(对分页进行封装)
package com.example.laoluo.play.utils;

import android.content.Context;
import android.support.v7.widget.DefaultItemAnimator;
import android.support.v7.widget.LinearLayoutManager;
import android.view.View;
import android.widget.Toast;

import com.cjj.MaterialRefreshLayout;
import com.cjj.MaterialRefreshListener;
import com.example.laoluo.play.Contant.Contants;
import com.example.laoluo.play.adapter.BaseAdapter;
import com.example.laoluo.play.adapter.SimpleAdapter;
import com.example.laoluo.play.bean2.Page;
import com.example.laoluo.play.bean2.Wares;
import com.example.laoluo.play.http.OkHttpHelper;
import com.example.laoluo.play.http.SpotsCallBack;
import com.example.laoluo.play.widget.DividerItemDecoration;
import com.lidroid.xutils.http.callback.RequestCallBack;
import com.squareup.okhttp.Response;

import java.lang.reflect.Type;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * Created by asus on 2016/10/27.
 * 分页工具类封装.--------加油加油加油加油,你可以的!!!!!!!!!!!!!
 */


public class Pager {

    private static final int STATE_NORMAL = 0;
    private static final int STATE_REFREH = 1;
    private static final int STATE_MORE = 2;
    private int state = STATE_NORMAL;
    private OkHttpHelper httpHelper;


    public static Builder builder;

    private Pager() {
        httpHelper = OkHttpHelper.getInstance();
        initRefreshLayout();//设置刷新控件
    }

    public static Builder newBuilder() {
        builder = new Builder();
        return builder;
    }

    public static class Builder {

        private String mUrl;
        private HashMap<String, Object> params = new HashMap<>(5);
        private MaterialRefreshLayout mRefreshLayout;
        private boolean canLoadMore;
            //设置默认值
        private int pageSize = 10;
        private int totalPage = 1;
        private int pageIndex = 1;

        private boolean showDialog = false;
        private OnPageListener onPageListener;

        private Context mContext;
        private Type mType;

        private int showDialogCount = 0;

        //1.设置url
        public Builder setUrl(String url) {
            builder.mUrl = url;
            return builder;
        }

        //2.放置参数(总数和页数)
        public Builder putParams(String key, Object value) {

            params.put(key, value);
            return builder;
        }

        //3.设置pageSize每一页的大小
        public Builder setPageSize(int pageSize) {
            this.pageSize = pageSize;
            return builder;
        }

        //4.是否可以加载更多
        public Builder setLoadMore(boolean loadMore) {
            this.canLoadMore = loadMore;
            return builder;
        }

        //5.刷新的控件
        public Builder setRefreshLayout(MaterialRefreshLayout refreshLayout) {

            this.mRefreshLayout = refreshLayout;
            return builder;
        }

        //6.是否显示加载的dialog
        public Builder setShowDialog(boolean showDialog) {
            this.showDialog = showDialog;
            return builder;
        }

        //7.设置监听刷新和加载更多
        public Builder setOnPageListener(OnPageListener onPageListener) {
            this.onPageListener = onPageListener;
            return builder;
        }

        //8.设置上下文和传入的type
        public Pager builder(Context context, Type type) {
            this.mType = type;
            this.mContext = context;
            valid();
            return new Pager();
        }

        //检测传入值是否为null
        private void valid() {
            if (this.mContext == null)
                throw new RuntimeException("content can't be null");

            if (this.mUrl == null || "".equals(this.mUrl))
                throw new RuntimeException("url can't be  null");

            if (this.mRefreshLayout == null)
                throw new RuntimeException("MaterialRefreshLayout can't be  null");
        }
    }

    //设置刷新
    private void initRefreshLayout() {
        builder.mRefreshLayout.setLoadMore(builder.canLoadMore);//设置加载更多
        builder.mRefreshLayout.setMaterialRefreshListener(new MaterialRefreshListener() {
            //下拉刷新的方法
            @Override
            public void onRefresh(MaterialRefreshLayout materialRefreshLayout) {

                refreshData();
            }

            //加载更多
            @Override
            public void onRefreshLoadMore(MaterialRefreshLayout materialRefreshLayout) {

                if (builder.pageIndex < builder.totalPage)
                    loadMoreData();
                else {
                    ToastUtil.showToast(builder.mContext, "没有更多数据");
                    builder.mRefreshLayout.finishRefreshLoadMore();//取消加载更多
                }
            }
        });
    }

    private void refreshData() {

        builder.pageIndex = 1;

        state = STATE_REFREH;

        builder.showDialog = false;//设置不显示dialog

        getData();

    }

    private void loadMoreData() {

        builder.pageIndex++;

        state = STATE_MORE;

        builder.showDialog = false;//设置不显示dialog

        getData();//重新加载数据

    }

    //获取数据
    private void getData() {
        //  String url = Contants.API.WARES_HOT + "?curPage=" + builder.pageIndex + "&pageSize=" + builder.pageSize;
        if (builder.showDialog == true) {
            if (builder.showDialogCount < 1) {
                builder.showDialogCount++;
            }else{
                builder.showDialog=false;
            }
        }
        httpHelper.get(buildUrl(), new RequestCallBack(builder.mContext, builder.showDialog));
    }

    class RequestCallBack<T> extends SpotsCallBack<Page<T>> {

        public RequestCallBack(Context context, boolean isShowDialog) {
            super(context, isShowDialog);
            //要将type赋值给父亲,否则是一个空指针
            super.mType = builder.mType;
        }


        @Override
        public void onSuccess(Response response, Page<T> pages) {

            List<T> datas = pages.getList();//数据集合
            builder.pageIndex = pages.getCurrentPage();//当前页
            builder.pageSize = pages.getPageSize();   //每一页的个数
            builder.totalPage = pages.getTotalPage();//总页数
            showData(datas, builder.totalPage, pages.getTotalCount());
        }


        @Override
        public void onError(Response response, int code, Exception e) {

        }
    }

    //回调监听当刷新和加载更多的时候
    private <T> void showData(List<T> datas, int totalPage, int totalCount) {

        if(datas ==null|| datas.size()<=0){
            Toast.makeText(builder.mContext,"加载不到数据",Toast.LENGTH_LONG).show();
            return;
        }

        switch (state) {
            case STATE_NORMAL://普通状态
                if (builder.onPageListener != null) {
                    builder.onPageListener.load(datas, totalPage, totalCount);
                }

                break;
            case STATE_REFREH://刷新状态

                builder.mRefreshLayout.finishRefresh();
                if (builder.onPageListener != null) {
                    builder.onPageListener.refresh(datas, totalPage, totalCount);
                }

                break;
            case STATE_MORE://加载更多状态

                builder.mRefreshLayout.finishRefreshLoadMore();//结束加载更多
                if (builder.onPageListener != null) {
                    builder.onPageListener.loadMore(datas, totalPage, totalCount);
                }

                break;
        }
    }


    /**
     * 构建URL
     *
     * @return
     */
    private String buildUrl() {

        return builder.mUrl + "?" + buildUrlParams();
    }

    private String buildUrlParams() {

        HashMap<String, Object> map = builder.params;

        map.put("curPage", builder.pageIndex);
        map.put("pageSize", builder.pageSize);

        StringBuffer sb = new StringBuffer();
        for (Map.Entry<String, Object> entry : map.entrySet()) {
            sb.append(entry.getKey() + "=" + entry.getValue());
            sb.append("&");
        }
        String s = sb.toString();
        if (s.endsWith("&")) {
            s = s.substring(0, s.length() - 1);
        }
        return s;
    }

    //让外界调用获取数据
    public void request() {
        getData();
    }

    //让外界对参数进行更改
    public void putParam(String key, Object value) {
        builder.params.put(key, value);
    }

    //设置回调监听,当normal。refreshing,loadmore
    public interface OnPageListener<T> {

        void load(List<T> datas, int totalPage, int totalCount);

        void refresh(List<T> datas, int totalPage, int totalCount);

        void loadMore(List<T> datas, int totalPage, int totalCount);


    }
}


四.商品排序功能的实现(TabLayout)



1.TabLayout的使用(用到了design包)
     ①.xml文件
 <android.support.design.widget.TabLayout
        android:id="@+id/tab_layout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        style="@style/customTabLayout"
        app:tabGravity="fill"
        app:tabMode="fixed"
        >
②.自定义属性
 <style name="customTabLayout" parent="Widget.Design.TabLayout">
        <!--<item name="tabMaxWidth">@dimen/tab_max_width</item>-->
        <item name="tabIndicatorColor">#eb4f38</item>
        <item name="tabIndicatorHeight">2dp</item>
        <item name="tabPaddingStart">12dp</item>
        <item name="tabPaddingEnd">12dp</item>
        <item name="tabBackground">@color/white</item>
        <item name="tabTextAppearance">@style/customTabTextAppearance</item>
        <item name="tabSelectedTextColor">#eb4f38</item>
    </style>

③.使用tablayout

private void initTab() {

        TabLayout.Tab tab = mTablayout.newTab();
        tab.setText("默认");
        tab.setTag(TAG_DEFAULT);

        mTablayout.addTab(tab);


        tab = mTablayout.newTab();
        tab.setText("价格");
        tab.setTag(TAG_PRICE);

        mTablayout.addTab(tab);

        tab = mTablayout.newTab();
        tab.setText("销量");
        tab.setTag(TAG_SALE);

        mTablayout.addTab(tab);

        mTablayout.setOnTabSelectedListener(this);

    }



2.逻辑实现

/**
 * Created by asus on 2016/10/27.
 */
public class WareListActivity extends AppCompatActivity implements Pager.OnPageListener, TabLayout.OnTabSelectedListener {
    @ViewInject(R.id.tab_layout)//tablayout
    private TabLayout mTablayout;
    @ViewInject(R.id.txt_summary)//文字描述
    private TextView mTxtSummary;
    @ViewInject(R.id.recycler_view)//recycleView
    private RecyclerView mRecyclerview_wares;
    @ViewInject(R.id.refresh_layout)//刷新加载
    private MaterialRefreshLayout mRefreshLayout;
    @ViewInject(R.id.toolbar)//toolbar
    private CnToolbar mToolbar;

    public static final int TAG_DEFAULT = 0;
    public static final int TAG_SALE = 1;
    public static final int TAG_PRICE = 2;

    public static final int ACTION_LIST=1;
    public static final int ACTION_GIRD=2;

    private long campaignId = 0;//id
    private int orderBy = 0;//排序的
    private SimpleAdapter simpleAdapter;
    private Pager pager;

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_warelist);
        ViewUtils.inject(this);
        campaignId = getIntent().getLongExtra(Contants.COMPAINGAIN_ID, 0);//点击homeFragment传入进来的id

        initToolBar();

        initTab();

        getData();
    }

    private void getData() {
        //1.设置参数
        pager = Pager.newBuilder().setUrl(Contants.API.WARES_CAMPAIN_LIST)
                .setRefreshLayout(mRefreshLayout)
                .putParams("campaignId", campaignId)//放入的id
                .putParams("orderBy", orderBy)//排序url里面的排序参数
                .setLoadMore(true)
                .setShowDialog(true)
                .setPageSize(10)
                .setOnPageListener(this)
                .builder(this, new TypeToken<Page<Wares>>() {
                }.getType());

        pager.request();//2.加载数据

    }

    private void initToolBar() {
        //左侧按钮的点击事件
        mToolbar.setNavigationOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                    finish();
            }
        });

        mToolbar.setRightButtonIcon(getResources().getDrawable(R.drawable.icon_grid_32));
        mToolbar.getmRightImageButton().setTag(ACTION_LIST);

        //右侧按钮的点击事件
        mToolbar.setmRightImageButtonOnclickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                int action = (int) v.getTag();
                if(action == ACTION_LIST ) {

                    mToolbar.getmRightImageButton().setTag(ACTION_GIRD);
                    mToolbar.setRightButtonIcon(getResources().getDrawable(R.drawable.icon_list_32));
                    mRecyclerview_wares.setLayoutManager(new GridLayoutManager(WareListActivity.this,2));

                }else if(action==ACTION_GIRD){

                    mToolbar.getmRightImageButton().setTag(ACTION_LIST);
                    mToolbar.setRightButtonIcon(getResources().getDrawable(R.drawable.icon_grid_32));
                    mRecyclerview_wares.setLayoutManager(new LinearLayoutManager(WareListActivity.this));

                }
            }
        });
    }

    private void initTab() {

        TabLayout.Tab tab = mTablayout.newTab();
        tab.setText("默认");
        tab.setTag(TAG_DEFAULT);

        mTablayout.addTab(tab);


        tab = mTablayout.newTab();
        tab.setText("价格");
        tab.setTag(TAG_PRICE);

        mTablayout.addTab(tab);

        tab = mTablayout.newTab();
        tab.setText("销量");
        tab.setTag(TAG_SALE);

        mTablayout.addTab(tab);

        mTablayout.setOnTabSelectedListener(this);

    }

    @Override
    public void load(List datas, int totalPage, int totalCount) {
        Log.d("Ware", totalCount + "");
        mTxtSummary.setText("共有" + totalCount + "件商品");

        if (simpleAdapter == null) {
            simpleAdapter = new SimpleAdapter(datas, this);

            mRecyclerview_wares.setLayoutManager(new LinearLayoutManager(this));
            mRecyclerview_wares.addItemDecoration(new DividerItemDecoration(this, DividerItemDecoration.VERTICAL_LIST));
            mRecyclerview_wares.setAdapter(simpleAdapter);
        } else {
            simpleAdapter.refreshData(datas);
        }
    }

    @Override
    public void refresh(List datas, int totalPage, int totalCount) {
        simpleAdapter.refreshData(datas);
        mRecyclerview_wares.scrollToPosition(0);
    }

    @Override
    public void loadMore(List datas, int totalPage, int totalCount) {
        simpleAdapter.loadMoreData(datas);
        mRecyclerview_wares.scrollToPosition(simpleAdapter.getDatas().size());//位置停止在更多数据那

    }


    /*tab的监听事件变化*/
    @Override
    public void onTabSelected(TabLayout.Tab tab) {
        orderBy = (int) tab.getTag();
        pager.putParam("orderBy", orderBy);
        pager.request();
    }

    @Override
    public void onTabUnselected(TabLayout.Tab tab) {

    }

    @Override
    public void onTabReselected(TabLayout.Tab tab) {

    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值