我正在开发我的第一个Android应用程序,我正在尝试使用一堆食物类型(字符串)来实现一个数据库,例如“牛肉,猪肉,鸡肉”,并为它们制作烹饪时间值(int),例如10000 ,50000,30000等。我的问题是实现这个的最佳方法是什么。我觉得最好的方式可能是使用外部数据库,但我也在想它是否会让我的生活变得糟透了。基本上我应该做一些像我发现的内容SQlite的例子:
public void onCreate(SQLiteDatabase db) {
db.execSQL("CREATE TABLE IF NOT EXISTS "
+NAMES_TABLE
+" (_id INT PRIMARY KEY ,name VARCHAR);"
);
db.execSQL("INSERT INTO "+NAMES_TABLE+" values(1,'marco');");
db.execSQL("INSERT INTO "+NAMES_TABLE+" values(2,'luca');");
db.execSQL("INSERT INTO "+NAMES_TABLE+" values(3,'qlimax');");
}
这将在启动时将值添加到内部数据库,只有它们不存在时才会添加
OR
我应该用SQlitebrowser创建一个数据库并将其放在/ assets中并从中读取吗?
现在我正在从ArrayAdapter读取我的值,我正在尝试替换它并从数据库读取它,它看起来像这样:
final FoodType type[] = new FoodType[3];
type[0] = new FoodType("Filet Mignon",50000);
type[1] = new FoodType("Skirt Steak",0);
type[2] = new FoodType("Flank Steak",25000);
ArrayAdapter<FoodType> typeAdapter = new ArrayAdapter<FoodType>(this,android.R.layout.simple_spinner_item,type);
typeAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
我应该怎么做?内部还是外部?
答案 0 :(得分:1)
根据我的个人经验,这取决于您的数据库的大小和数量。例如,我正在编写的应用程序具有超过50000条记录的表,因此最好将已创建的数据库复制到资产目录。
另一方面,如果你的数据库足够简单......最好从代码中填充它(它可以防止一些麻烦,相信我)。
关于你的适配器...用SimpleCursorAdapter
替换它,它在构造函数中只需要很少的更改。