商品列表

package com.example.ggq.gaoguoqing20180811;

import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Handler;
import android.os.Message;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.GridLayoutManager;
import android.support.v7.widget.LinearLayoutManager;
import android.util.Log;
import android.view.View;
import android.widget.Toast;

import com.example.ggq.gaoguoqing20180811.adapter.ProductAdapter;
import com.example.ggq.gaoguoqing20180811.bean.ProductBean;
import com.example.ggq.gaoguoqing20180811.common.Api;
import com.example.ggq.gaoguoqing20180811.utils.OkHttpUtil;
import com.google.gson.Gson;
import com.jcodecraeer.xrecyclerview.XRecyclerView;

import java.io.IOException;
import java.util.HashMap;

import okhttp3.Response;

public class GoodsActivity extends AppCompatActivity implements XRecyclerView.LoadingListener, ProductAdapter.OnItemClickListener {

    private XRecyclerView xrecycler_view;
    private int page = 1;
    private static final String TAG = "GoodsActivity";
    private Handler handler = new Handler(){
        @Override
        public void handleMessage(Message msg) {
            super.handleMessage(msg);
        }
    };
    private ProductBean productBean;
    private ProductAdapter adapter;
    private SharedPreferences sp;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_goods);
        initView();
        xrecycler_view.setLoadingMoreEnabled(true);
        xrecycler_view.setLoadingListener(this);
        requestProduct();
        sp = getSharedPreferences("user", MODE_PRIVATE);
        sp.getBoolean("b",true);
    }

    private void requestProduct() {
        HashMap<String, String> params = new HashMap<>();
        params.put("keywords","笔记本");
        params.put("page",page+"");
        OkHttpUtil.getInstance().postData(Api.PRODUCT_URL, params, new OkHttpUtil.RequestCallback() {
            @Override
            public void onSuccess(Response response) {
                if(response.code() == 200){
                    try {
                        String result = response.body().string();
                        Log.d(TAG, "onSuccess: "+result);
                        parseResult(result);
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
            }

            @Override
            public void onError(IOException e) {
                Log.d(TAG, "onError: "+"数据请求失败");
            }
        });
    }

    private void parseResult(String result) {
        productBean = new Gson().fromJson(result, ProductBean.class);
        handler.post(new Runnable() {
            @Override
            public void run() {
                fillDatas();
            }
        });
    }

    private void fillDatas() {
        if(true){
            xrecycler_view.setLayoutManager(new LinearLayoutManager(this));
        }else {
            xrecycler_view.setLayoutManager(new GridLayoutManager(this,2));
        }
        //xrecycler_view.setLayoutManager(new LinearLayoutManager(this));
        if(page == 1){
            adapter = new ProductAdapter(this, productBean.getData());
            xrecycler_view.setAdapter(adapter);
            xrecycler_view.refreshComplete();
        }else {
            if(adapter != null){
                adapter.loadData(productBean.getData());
                xrecycler_view.loadMoreComplete();
            }
        }
        adapter.setOnItemClickListener(this);
    }

    private void initView() {
        xrecycler_view = findViewById(R.id.xrecycler_view);
    }

    public void sao(View view) {
        startActivity(new Intent(this,SaoActivity.class));
    }

    public void switcher(View view) {
        //切换
        sp.edit().putBoolean("b",false).commit();
    }

    @Override
    public void onRefresh() {
        page = 1;
        requestProduct();
    }

    @Override
    public void onLoadMore() {
        page++;
        requestProduct();
    }

    @Override
    public void onItemClick(int position) {
        ProductBean.DataBean product = productBean.getData().get(position);
        Toast.makeText(this, ""+product.getTitle(), Toast.LENGTH_SHORT).show();
    }
}
 

适配器

package com.example.ggq.gaoguoqing20180811.adapter;

import android.content.Context;
import android.support.annotation.NonNull;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import com.bumptech.glide.Glide;
import com.example.ggq.gaoguoqing20180811.R;
import com.example.ggq.gaoguoqing20180811.bean.ProductBean;
import java.util.List;

public class ProductAdapter extends RecyclerView.Adapter<ProductAdapter.ViewHolder>{
    private Context context;
    private List<ProductBean.DataBean> list;
    private OnItemClickListener onItemClickListener;

    public ProductAdapter(Context context, List<ProductBean.DataBean> list) {
        this.context = context;
        this.list = list;
    }

    @NonNull
    @Override
    public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        View view = LayoutInflater.from(context).inflate(R.layout.product_item_layout, parent, false);
        ViewHolder viewHolder = new ViewHolder(view);
        return viewHolder;
    }

    @Override
    public void onBindViewHolder(@NonNull ViewHolder holder, final int position) {
        ProductBean.DataBean dataBean = list.get(position);
        holder.title.setText(dataBean.getTitle());
        holder.desc.setText(dataBean.getSubhead());
        //holder.price.setText(dataBean.getPrice());
        Glide.with(context).load(dataBean.getImages()).into(holder.iv_image);
        holder.itemView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if(onItemClickListener != null){
                    onItemClickListener.onItemClick(position);
                }
            }
        });
    }

    @Override
    public int getItemCount() {
        return list.size() == 0 ? 0 : list.size();
    }
    public void loadData(List<ProductBean.DataBean> data){
        if(this.list != null){
            this.list.addAll(data);
            notifyDataSetChanged();
        }
    }
    class ViewHolder extends RecyclerView.ViewHolder{
        private ImageView iv_image;
        private TextView title;
        private TextView desc;
        private TextView price;

        public ViewHolder(View itemView) {
            super(itemView);
            iv_image = itemView.findViewById(R.id.iv_image);
            title = itemView.findViewById(R.id.tv_title);
            desc = itemView.findViewById(R.id.tv_desc);
            price = itemView.findViewById(R.id.tv_price);
        }

    }

    public void setOnItemClickListener(OnItemClickListener onItemClickListener) {
        this.onItemClickListener = onItemClickListener;
    }

    public interface OnItemClickListener{
        void onItemClick(int position);
    }
}
 

猜你喜欢

转载自blog.csdn.net/weixin_42535797/article/details/81609514
今日推荐