day 5

购买界面要实现商品的浏览,引入数据,然后展示出来,这里我用RecyclerView布局来实现

学习和实现目标

1> 如何使用RecyclerView,这是最基本的,引入这个控件需要做什么。
2> 如何实现RecyclerView的点击事件,启动新的Acitivity,并且能够传导数据。
3> 如何使用目前最流行的Glide,从网络加载图片。
4> 如何自定义Toolbar(或者叫ActionBar),实现一些顶部导航栏的功能

RecyclerView在屏幕上显示的各个条目,加载的是同一个,或者几个xml布局文件,只不过是往里面塞了不同的数据而已。

RecyclerView每个条目中的各个控件(ImageView,TextView,Button......),是由一个叫ViewHolder的家伙把控的。这个ViewHolder需要咱们自己写,并且它需要继承自RecyclerView.ViewHolder。

RecyclerView每个条目中的数据,是由一个叫Adapter的家伙适配的,并且它需要上面的ViewHolder的配合。这个Adapter也是需要咱们自己实现的类,并且它需要继承自RecyclerView.Adapter。

有一个叫LayoutManager的家伙负责RecyclerView条目的显示方式,比如垂直显示,水平显示,还是卡片式显示等。

这里我们首先把数据写死,后面在导入数据库的数据,定义商品类,建立一个存有数据的集合。因为慢慢的完善功能商品类的数据属性也会慢慢的增加。

初期商品类的数据我先简单的只有商品名称,商品价格,商品店家地理位置,商品图片,商品社区展示图片

package Home.Data;

import java.util.List;

public class Goods {
    private long id;
    private String imageUrl;
    private String price;
    private String name;
    private List<Image> imageUrs1;
    private String address;


    public Goods(long id,String imageUrl, String price, String name,String address, List<Image> imageUrs1) {
        this.imageUrl = imageUrl;
        this.price = price;
        this.name = name;
        this.address = address;
        this.imageUrs1=imageUrs1;
        this.id=id;
    }
    public Goods() {

    }
    public long getId() { return id; }
    public void setId(long id){this.id=id;}
    public String getImageUrl() { return imageUrl; }
    public void  setImageUrl(String imageUrl){this.imageUrl = imageUrl;}
    public String getPrice() { return price; }
    public void setPrice(String price){this.price = price;}
    public String getName() { return name; }
    public void setName(String name){this.name = name;}
    public String getAddress() { return address; }
    public void setAddress(String address){this.address = address;}
    public List<Image> getImageUrls() { return imageUrs1; }

}

建立一个数据源

package Home.Data;

import com.example.expressdelivery.R;

import java.util.ArrayList;
import java.util.List;

public class GoodsFactory {

    private static String[] imageUrls = {
            "https://picb.zhimg.com/80/v2-ca5ab83c1c0f746da6faf7ce802383c8_720w.jpg",
            "https://pic1.zhimg.com/80/v2-6a63a1812b9682ba6c6cb18bccfeff4c_720w.jpg",
            "https://picb.zhimg.com/80/v2-4508a3a0b4ba9e4da7bb9cae8a3d7f7c_720w.jpg",
            "https://picb.zhimg.com/80/v2-da738ec1dc9fd81f5035cb34775c0485_720w.jpg",
            "https://picb.zhimg.com/80/v2-3c37f69f7282934bed7207b871a8ce28_720w.jpg",
            "https://picb.zhimg.com/80/v2-59a234421ec151b95ffcec8bf8f42611_720w.jpg",
            "https://picb.zhimg.com/80/v2-b22bfd40a6f4fa40e97c7b1d21d4d84a_720w.jpg",
            "https://pic1.zhimg.com/80/v2-2e87f46ea63aea7bc25432be17104bdc_720w.jpg",
            "https://pic4.zhimg.com/80/v2-0dbab36effd0131c5a96b283ad49d619_720w.jpg",
            "https://pic1.zhimg.com/80/v2-67484a5dce474b61a36071b93d27e9e6_720w.jpg"
    };

    private static String[] prices = {
            "599",
            "699",
            "1299",
            "299",
            "679",
            "879",
            "569",
            "389",
            "479",
            "999"
    };

    private static String[] names = {
            "Vans", "Nike Kyrie 6", "Nike Air Force", "Air Jordan 1",
            "Nike Zoom", "Converse", "Nike Air Forc", "李宁", "彪马", "Newblance"
    };
    private static String[] addresses = {
            "江西抚州乐安", "河北石家庄", "北京", "上海",
            "广东河源", "湖南长沙", "湖北武汉", "天津", "四川成都", "贵州绵阳"
    };
    private static long[] ids = {
            1001,1002,1003,1004,1005,1006,1007,1008,1009,1010
    };
    public static List<Goods> createMeizis(int num) {

        List<Goods> Goodes = new ArrayList<>();
        for (int i = 0; i < num; i++) {
            int a = i ;
            String url = imageUrls[a];

            String price = prices[a];
            String name = names[a];
            String address = addresses[a];
            long id=ids[a];
            Goodes.add(new Goods(id,url, price, name,address,ImagesFactory.createImages(num)));
        }
        return Goodes;
    }
}

后期导入数据就直接在数据源这个类里导入。

原文地址:https://www.cnblogs.com/chenaiiu/p/13455669.html