2010-12-04 11 views
1

私は最初のAndroidアプリケーションを開発中で、 "Beef、Pork、Chicken"などの食べ物の種類(文字列)を束ねてデータベースを実装しようとしています。 )10000,50000,30000などのような彼らのために私の質問はこれを実装するための最善の方法です。私は外部データベースを使用するのが最善の方法だと思っていますが、それが私の人生の地獄になるかどうかも考えています。彼らが存在しない場合にのみ、起動すると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');"); 

    } 

これは内部データベースに値を追加します。基本的に私は、内部のSQLiteをオフに動作します私が見つけた例のような何かを行う必要があります。
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); 

は、どのように私はこれについて行くべきですか?内部または外部?

答えて

1

私の個人的な経験では、データベースの大きさと大きさによって異なります。たとえば、私が現在作成しているアプリケーションには50000を超えるレコードのテーブルがあるので、すでに作成されたデータベースをassetsディレクトリにコピーする方が良いでしょう。

一方、データベースがシンプルであれば、コードからデータを取り込む方がはるかに優れています(頭痛を防ぐ、信頼してください)。

アダプタに関しては、SimpleCursorAdapterに置き換えてください。コンストラクタの変更はほとんど必要ありません。

+0

私のデータベースは巨大にはなりません。私が使っているのは、スピナーに何らかの価値を持っているいくつかのアイテムがあります。現時点で私はクラスを持っています – SickNick

+0

クラスを使用し続ける....良い選択 – Cristian

関連する問題