1

私は最初の Android アプリケーションに取り組んでおり、「ビーフ、ポーク、チキン」などの一連の食品タイプ (文字列) を含むデータベースを実装しようとしており、10000、50000 などの調理時間値 (int) を持っています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');");

    }

これにより、値が存在しない場合にのみ、起動時に内部データベースに値が追加されます。
または
、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);

これについてどうすればよいですか?内部または外部?

4

1 に答える 1

1

私の個人的な経験では、データベースのサイズと今後のサイズによって異なります。たとえば、私が現在作成しているアプリには50000を超えるレコードを含むテーブルがあるため、作成済みのデータベースをアセットディレクトリにコピーすることをお勧めします。

一方、データベースが十分に単純な場合は、コードからデータベースにデータを入力する方がはるかに優れています(これにより、頭痛の種を防ぐことができます。信頼してください)。

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

于 2010-12-04T02:12:47.717 に答える