我正在尝试为android中的模拟食品配送应用实现类别。
我想为汉堡,披萨等餐厅提供类别。每个类别中可能有许多食品。这些餐厅将包括n个类别。我该如何实现这样的东西?
目前,数据只是出于概念验证的目的而被硬编码到程序中,因此请不要包括数据库,因为我仍在学习android并且对SQLite或FireBase等不是很熟悉。
答案 0 :(得分:1)
这取决于您要如何访问数据。您可以将Category
用作枚举并将其分配给FoodItem
,然后让Restaurant
的ArrayList为FoodItems
。
OR
您可以将Category
设为ArrayList为FoodItems
的类,并让Restaurant
的ArrayList为Categories
。
答案 1 :(得分:0)
根据您的概念,您似乎要集成任何Web API(REST或firebase之类的东西),以从Web服务器获取数据。
我建议您执行以下操作:
创建一个 .json文件,其中包含您可能需要显示的内容。
制作一些与您的 .json文件相关的模型数据类,需要对其进行解析。
现在,暂时从Assets文件夹中读取.json文件,以充分利用其中的内容(然后将其显示在您的应用中)。
通过这种方式,如果您必须在不久的将来进行一些 JSON解析,那么您已经拥有了解析JSON 所需的所有内容(例如您的数据传输对象< strong> DTO )以及用于解析的代码。
因此,那时,您要做的就是集成一些HTTP客户端和设置端点,因为您已经在端进行JSON解析或使用Firebase 进行了设置(其他东西已经处理)。
答案 2 :(得分:0)
EnumSet类可能会有所帮助。这是存储一组枚举类型的值的有效方法。鉴于该类提供了用于从1-5个任意元素创建此类集合的简单工厂方法,因此它特别适合您N <= 5
的情况。示例:
public class Restaurant {
enum FoodType { BURGER, PIZZA, RAMEN };
private final EnumSet<FoodType> foodTypes;
public Restaurant(FoodType type1, FoodType type2, FoodType type3) {
foodTypes = EnumSet.of(type1, type2, type2);
}
public Restaurant(FoodType... foodtypes) {
// Various options
}
}