2012-04-13 8 views
1

私はアンドロイドでデータベースを使用することを学び、私に多く教えているチュートリアルに従っているので、最初にアプリケーションをインストールして開くときにあらかじめデータベースを入れてアプリにコピーする方法を知っていますそのコンテンツをリストビューで表示します。私はSQLiteデータベースブラウザを使用してデータベースを作成しました。私の質問は、私のapp assetsフォルダにこの事前入力データベースを含めるのではなく、私のウェブサイトにアップロードしてそこから取得する方法です。データベース内の項目が変更されるたびにアプリを更新する必要がありますか? データベースを作成するためにSQLiteデータベースブラウザを使用し続けることはできますか? あなたがこの達成を手助けできるチュートリアルを共有できるなら、どんなコメントも大歓迎です。あらかじめありがとうございます。私のアンドロイドアプリで使用するために自分のデータベースを私のウェブサイトにロードするには?

答えて

1

私のソリューションはYouTubeとmimirsoftのチュートリアルから来ています。 第1回mysqlウィザードでデータベースを作成しました。 phpadminで2番目に私は自分のアプリケーションに必要なすべての情報をテーブルに作成しました 3番目にデータベースからデータを取得して呼び出し可能なjson文字列を作成します私のアプリから。 私のアプリでは4番目にkyウェブサイトからphpファイルの呼び出しを作成し、リストビューに表示する情報のアダプタとホルダーを設定します。 それだけです!それは、何か似たようなことを達成したいと思うなら、うまくいくと私はいくつかのコードを提供できます。 さらに、このテーマに関するmimirsoftチュートリアルの次のリンクを確認できます。 パート1 http://m.youtube.com/watch?v=P3CwlckiLTU とパート2 http://m.youtube.com/watch?v=HTIYt07NDRo

0

sqliteダンプファイルを生成し、データベースにインポートして、必要なテーブルとデータを置き換えます。

これは私がWebアプリケーションで行ったことであり、ネイティブのアプリケーションではありませんが、動作するはずです。

0

これを行う方法はいくつかあります。

SQLiteデータベースをWebサーバーに置くことが1つの方法です。次に、デバイス上に既に存在するデータベースと異なるかどうかを確認することができます。たとえば、サーバー上にテキストファイルがあり、その中にデータベースのバージョンである行が1つあります。データベース内には、現在のローカルバージョンを含む1つの行を持つテーブルがあります。データベースのバージョンをクエリし、テキストファイルのバージョンと比較することができます。ローカルデータベースのバージョンがテキストファイルにリストされているバージョンよりも小さい場合は、ローカルバージョンをスクラップして新しいバージョンを取得します。

あなたはこのような何かを行うことによって、リモートのファイルを読むことができます:

URL myFileURL = null; 
InputStream is = null; 
String version = ""; 
try { 
    myFileURL = new URL("http://www.mywebsite.com/dbversionfile.txt"); 
    is = myFileURL.openStream(); 
    BufferedReader br = new BufferedReader(new InputStreamReader(is, "UTF-8")); 
    String line = ""; 
    while((line = br.readLine()) != null) { 
     version = line; 
    } 
} catch (Exception e) { } 

これよりも優れたソリューションは、アプリケーションとデータベースのスケルトンバージョンを含めることであろう。すべての適切なテーブルを持つ空のデータベース。その後、Webサーバー上のPHP/Java/etcページと通信し、現在データベースに存在しないデータのJSON文字列を取得できます。この方法を選択すると、データの各行にタイムスタンプを含めることができます。これにより、デバイスのローカルデータベース上で、最新のタイムスタンプを持つ行を検索することができます。このタイムスタンプがサーバー上のデータベースから返されたタイムスタンプよりも小さい場合は、JSON形式より大きいすべての行を返します。

このメソッドを使用する場合は、Android JSONObjectクラスを調べることができます。

他にも方法があると確信しています。

関連する問題