展示商品列表

private Handler handler = new Handler(){
    @Override
    public void handleMessage(Message msg) {
        super.handleMessage(msg);
    }
};
private ProductBean productBean;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_login);
    initView();

}

private void initView() {
    product = findViewById(R.id.productRv);
    neir = findViewById(R.id.edit_nr);
}


public void sousuo(View view) {

    HashMap<String,String> parms = new HashMap<>();
    parms.put("keywords",neir.getText().toString());

    OkHttpUtils.getinstance().getData(API.PRODUCT_URL, parms, new RequestCallBack() {
        @Override
        public void failure(Call call, IOException e) {

        }

        @Override
        public void onResponse(Call call, Response response) {
         String request = null;
            if(response.code()==200){
                try {
                    request = response.body().string();

                    //解析
                    Productjson(request);

                } catch (Exception e) {
                    e.printStackTrace();
                }
            }


        }
    });


}

private void Productjson(String request) {

    productBean = new Gson().fromJson(request, ProductBean.class);

    Log.i("xxx", productBean.data.get(0).title);

    handler.post(new Runnable() {
        @Override
        public void run() {
          fileDatas();
        }
    });

}

private void fileDatas() {

    ProductAdapter adapter = new ProductAdapter(LoginActivity.this, productBean.data);
    product.setLayoutManager(new GridLayoutManager(this,2));

    product.setAdapter(adapter);

 

适配器

public class ProductAdapter extends RecyclerView.Adapter<ProductAdapter.MyViewHolder> {

    private Context context;
    private List<ProductBean.Product> list;
    private OnItemClickListener onItemClickListener;

    public ProductAdapter(Context context, List<ProductBean.Product> list) {

        this.context = context;
        this.list = list;

    }

    /**
     * 创建viewholder 和渲染布局
     *
     * @param parent
     * @param viewType
     * @return
     */
    @NonNull
    @Override
    public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {

        View view = LayoutInflater.from(context).inflate(R.layout.product_item_layout, parent, false);


        MyViewHolder myViewHolder = new MyViewHolder(view);

        return myViewHolder;
    }


    /**
     * 绑定viewholder,作用:展示数据
     *
     * @param holder
     * @param position
     */
    @Override
    public void onBindViewHolder(@NonNull MyViewHolder holder, final int position) {
        ProductBean.Product product = list.get(position);
        //with 绑定上下文,load加载网络资源(url),into:把bitmap设置给当前控件
        String[] imageUrls = product.images.split("\\|");

        if (imageUrls != null && imageUrls.length > 0) {

            Glide.with(context).load(imageUrls[0]).into(holder.iv);//
        }

        holder.tv.setText(product.title);

        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.Product> data) {

        if (this.list!=null){
            this.list.addAll(data);
            notifyDataSetChanged();
        }
    }

    class MyViewHolder extends RecyclerView.ViewHolder {

        private ImageView iv;
        private TextView tv;

        public MyViewHolder(View itemView) {
            super(itemView);

            iv = itemView.findViewById(R.id.iv);
            tv = itemView.findViewById(R.id.tv);
        }
    }


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

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

 

要在Java中使用SSM展示商品列表到首页,可以按照以下步骤进行操作: 1. 创建商品实体类(例如Product)和商品服务类(例如ProductService),并在服务类中编写获取商品列表的方法(例如getProductList)。 2. 在Spring配置文件中配置MyBatis和Spring MVC,以便使用MyBatis访问数据库和使用Spring MVC控制器处理请求。 3. 在控制器(例如ProductController)中,调用商品服务类的getProductList方法获取商品列表,并将其存储在ModelAndView对象中。 4. 在JSP页面中,使用JSTL标签库来遍历商品列表并将其展示在页面上。 下面是一个简单的示例代码: Product.java ```java public class Product { private int id; private String name; private double price; // 省略getter和setter方法 } ``` ProductService.java ```java public interface ProductService { List<Product> getProductList(); } ``` ProductServiceImpl.java ```java @Service public class ProductServiceImpl implements ProductService { @Autowired private ProductMapper productMapper; @Override public List<Product> getProductList() { return productMapper.getProductList(); } } ``` ProductMapper.xml ```xml <mapper namespace="com.example.mapper.ProductMapper"> <select id="getProductList" resultType="com.example.model.Product"> SELECT * FROM product </select> </mapper> ``` ProductController.java ```java @Controller public class ProductController { @Autowired private ProductService productService; @RequestMapping("/") public ModelAndView index() { ModelAndView modelAndView = new ModelAndView("index"); List<Product> productList = productService.getProductList(); modelAndView.addObject("productList", productList); return modelAndView; } } ``` index.jsp ```html <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <html> <head> <title>商品列表</title> </head> <body> <h1>商品列表</h1> <table> <tr> <th>编号</th> <th>名称</th> <th>价格</th> </tr> <c:forEach items="${productList}" var="product"> <tr> <td>${product.id}</td> <td>${product.name}</td> <td>${product.price}</td> </tr> </c:forEach> </table> </body> </html> ``` 在以上示例中,我们使用了MyBatis访问数据库,Spring MVC控制器处理请求,并在JSP页面中使用JSTL标签库遍历商品列表并显示在页面上。当访问网站首页时,将会显示商品列表
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值