2010-12-04 58 views
1

我正在处理我的第一个Android应用程序,我试图用一堆食物类型(字符串)实现一个数据库,如“牛肉,猪肉,鸡肉”,并烹饪时间值(int )他们如10000,50000,30000等我的问题是什么是最好的方式来实现这一点。我觉得最好的方法可能是使用外部数据库,但我也在想如果它会让我的生活变得糟糕。基本上我应该做的事情就像一个例子,我发现,工作过的内部SQlite的:Android外部与内部数据库混淆

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');"); 

    } 

推出时,这将在值添加到内部数据库,只有当它们不存在。

我应该使用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); 

我应该如何去了解呢?内部还是外部?

回答

1

以我个人的经验,它取决于你的数据库有多大和将会是多大。例如,我目前正在编写的应用程序有超过50000条记录的表,因此最好将已创建的数据库复制到资产目录。另一方面,如果你的数据库足够简单...从代码中填充它会好得多(这会避免一些头痛的问题,相信我)。

关于您的适配器...将其替换为SimpleCursorAdapter,它需要在构造函数中进行少许更改。

+0

那么我的数据库不会很大。我也在使用它的原因是纺纱工有几件物品对他们有某种价值。此刻我有班级 – SickNick 2010-12-05 05:59:15