2010-12-04 62 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