1

この質問は、データを最良の方法で保存する方法についてアドバイスを求めるというよりも、おそらく彼の要求です。選択した連絡先と一緒に画像のファイルパスを保存することで、デバイスの ContactsContract からの連絡先でデバイスの画像にタグを付けるアプリを実行しています。連絡先によって、ID または名前を保存するだけで十分だと思います。その連絡先?

FileOutputStream を使用してこのデータを書き込む方法についてアドバイスが必要です。ファイルの各行に「filepath、id」などの文字列を保存する必要がありますか、それとも最善の方法は何ですか? また、ファイルパスと連絡先が既にファイルに含まれているかどうかを検索し、複数の連絡先を画像にタグ付けできるようにする必要もあります。最初は、各画像のファイルを使用して、タグ付けされたすべての連絡先を追加できると考えましたが、それはおそらく良い方法ではありませんか?!

アドバイスをいただければ幸いです。

編集:

共有設定を使用する場合、連絡先 ID をキーとして使用し、画像パスを値として使用できますか? 次に、異なる値を持ついくつかの一意の ID キーを追加できますか? しかし、キーに複数の値を追加することはできないのでしょうか?

4

2 に答える 2

0

ある種の構造化データシステムが必要です。

SQLiteを試しましたか?--SQLiteはその仕事に適しているようです。

CREATE TABLE `contact`('id' INT , 'contact_id' TEXT, 'image_file_path' TEXT, TEXT, PRIMARY KEY('id'))

検索機能は簡単です。

SELECT * FROM contact WHERE contact_id ='1'

ここから始めます

于 2013-02-25T12:59:46.637 に答える
0

編集:

jsonstring に変換して sharedPreferences に入れることで、連絡先の詳細を挿入できます。

例:

    JSONObject obj=new JSONObject();
    obj.put("Contactid", 1);
    obj.put("ImagePath", "/sdcard/download/a.png");

String jsonstring=obj.toString();

このようにjson配列を使用するよりも複数の連絡先がある場合

JSONArray array=new JSONArray("ContactDetails");
for(int i=0;i<noofcontacts;i++)
{
        JSONObject obj=new JSONObject();
        obj.put("Contactid", 1);
        obj.put("ImagePath", "/sdcard/download/a.png");
        array.put(obj);
}
jsonstring= array.toString();

このようにSharedPreferencesに連絡先の詳細を保存します

 SharedPreferences sharedPreferences = getPreferences(MODE_PRIVATE);
    SharedPreferences.Editor editor = sharedPreferences.edit();
    editor.putString("contactDetails", jsonstring);
    editor.commit();

SharedPreference 値を取得する

 SharedPreferences sharedPreferences = getPreferences(MODE_PRIVATE);
    String jsoncontactdetails= sharedPreferences.getString("contactDetails", null);

Json Parsing を知っていることを願っています。


この場合、データベースを使用するのが最適なオプションです。内部ストレージに各ファイルを維持するのは難しく、処理時間もかかるためです。データベース内の連絡先のイメージ パスが最適です。

于 2013-02-25T13:12:15.123 に答える