2013-06-16 8 views
5

私はこのようなプロジェクトに取り組んでいます。http://www.androidhive.info/2012/05/how-to-connect-android-with-php-mysql/私のデータベースの値をアンドロイドのアプリケーションGUIに表示しましょう。jsonの配列をアンドロイドの内部記憶装置に保存する方法

アプリケーションがサーバーに接続されていない場合でもアクセスできるように、必要なデータベース値をAndroidの内部ストレージに保存する必要があります。どんな助け?

答えて

3

は、ローカルサーバーのデータをキャッシュするローカルデータベースを使用することを検討してください、それはほとんどのアプリがそれをしないあなただけの1以上を使用する場合は、ここではsqliteのための良いチュートリアルでは、Android Android SQLite

上にある方法ですありがとうあなたはSharedPreferencesを使用することができますサーバーからのいくつかのJSONObjectは、はるかに簡単に編集/更新することが迅速です。アンドロイドストレージの詳細についてはexample

Android Storage

11

あなたが共有preferncesに文字列として全体JSONを書き、それを取得し、デバイスがオフラインの場合でも、GUIで表示するようにそれを解析することができます

String str = json.toString(); 
SharedPreferences sharedPref = getSharedPreferences("appData", Context.MODE_WORLD_WRITEABLE); 
SharedPreferences.Editor prefEditor = getSharedPreferences("appData", Context.MODE_WORLD_WRITEABLE).edit(); 
prefEditor.putString("json", str); 
prefEditor.commit(); 
+0

TinyDBはこのアプローチを簡略化しています。https://github.com/kcochibili/TinyDB--Android-Shared-Preferences-Turbo。 –

1

私は、サーバーのphp-mysqlデータベースに接続するアプリケーションで作業しています。クエリの結果をファイルに保存するのではなく、内部のAndroidで少なくとも私がそう思うように保存する必要がありますデータベース(sqlite)。 Androidにはデータベースに関する多くの情報があります。このexample

あなたは簡単にsqliteのとContentProviders(データベースに保存されたデータにアクセスするためのクリーンな方法を使用する方法を見ることができます。

データベース内のJSONArrayをcorrecty節約するために、私はJacksonライブラリを使用することをお勧めいたします

最後に、情報の量が比較的少ない場合はSharedPreferencesを使用することもできます。これにより、モバイルメモリに保存されたデータがより高速にアクセスできるようになります。

Hoそれは助けてください:)

5

ソリューションとしてローカルsqliteデータベースを選択した場合、私はsqliteにjsonを保存するための軽量ユーティリティを書いています。

チェックアウトgit repoはこちら。 https://github.com/wenchaojiang/JSQL

1行のコードが必要です。

new JSQLite(yourJsonString, yourDB).persist(); 

は、それが

1
//if you have already the json string 
    String str = json.toString(); 

    //if you want to convert list to json (with Gson): 
    //foo - will be your list 
    String str = new Gson().toJson(foo); 

    SharedPreferences sharedPref = getPreferences(Context.MODE_PRIVATE); 
    SharedPreferences.Editor prefEditor = sharedPref.edit(); 
    prefEditor.putString("pref_json_key", str); 
    prefEditor.apply(); 
2

あなたはRealm.ioで、このような単純な例を使用しようとすることができホープ:

public class City extends RealmObject { 
    private String city; 
    private int id; 
    // getters and setters left out ... 
} 

// Insert from a string 
realm.beginTransaction(); 
realm.createObjectFromJson(City.class, "{ city: \"Copenhagen\", id: 1 }"); 
realm.commitTransaction(); 

よろしく!

関連する問題