2

私はグーグルを検索bundleして、データベースにタイプとして格納するのに適した文字列に変換する方法を探していましたBLOB。私はそれをファイルにシリアル化する多くの例を見つけましたが、それを文字列またはバイトに入れる方法については言及していません。誰かがこれがどのように行われるかの例を教えてもらえますか?

カスタムUIコンポーネントにプラグインを使用するアプリを開発しており、データベースに保存されている構成オプションのバンドルを渡して、プラグインで構成アクティビティを呼び出したいと考えています。アクティビティは更新されたオプションを含むバンドルを返し、それをデータベースに保存する必要があります。

誰かが私を正しい方向に向けることができれば、私は感謝するでしょう。

4

1 に答える 1

3

最初のステップは、これを入れるテーブルを作成することです。この場合、基本的なことを行う必要があります。

CREATE TABLE bundles (
    _id INTEGER PRIMARY KEY AUTOINCREMENT, 
    name TEXT, 
    value BLOB);

Bundle次に、次のように、 を挿入するためのメソッドが必要になります。

private void put(SQLiteDatabase db, String name, Bundle bundle) {
    ByteArrayOutputStream valueStream = new ByteArrayOutputStream();
    try {
        ContentValues rows = new ContentValues();
        rows.put("name", name);
        Parcel p = Parcel.obtain();
        bundle.writeToParcel(p, 0);

        valueStream.write(p.marshall());
        rows.put("value", valueStream.toByteArray());

        db.insert("bundles", null, rows);   

        valueStream.close();
    } catch (IOException e) {       
        Log.e("error writing object", e.toString());
    }
}
于 2012-05-05T04:51:32.847 に答える