购买界面要实现商品的浏览,引入数据,然后展示出来,这里我用RecyclerView布局来实现
学习和实现目标
1> 如何使用RecyclerView,这是最基本的,引入这个控件需要做什么。
2> 如何实现RecyclerView的点击事件,启动新的Acitivity,并且能够传导数据。
3> 如何使用目前最流行的Glide,从网络加载图片。
4> 如何自定义Toolbar(或者叫ActionBar),实现一些顶部导航栏的功能
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; } }
后期导入数据就直接在数据源这个类里导入。