OK、私はAndroidでデータベースを使用することを学んでおり、多くのことを教えてくれたいくつかのチュートリアルに従っています.その内容をリスト ビューで表示します。私は SQLite Database Browser を使用してデータベースを作成したので、私の質問は、この事前入力されたデータベースをアプリの資産フォルダーに含める代わりに、それを自分の Web サイトにアップロードしてそこから取得して、そこでデータベースを更新できるようにするにはどうすればよいかということです。データベース内のアイテムが変更されるたびにアプリを更新する必要がありますか? SQLite Database Browser を使用してデータベースを作成できますか? これを達成するのに役立つチュートリアルを共有できれば、どんなコメントも大歓迎です。よろしくお願いします。
3 に答える
私の解決策は、YouTube と mimirsoft のいくつかのチュートリアルから得ました。1 つ目は mysql ウィザードを使用してデータベースを作成し、2 つ目は phpadmin で、アプリに必要なすべての情報を含むテーブルを作成しました 3 つ目は、データベースからデータを照会し、アプリから呼び出すことができる json 文字列を作成する php ファイルを作成しました. 私のアプリの4番目に、ky Webサイトからphpファイルの呼び出しを作成し、リストビューに表示する情報のアダプターとホルダーを設定します。それでおしまい!同様の質問を達成したい場合は機能し、コードを提供できます。さらに、このテーマに関する mimirsoft チュートリアルを見つけることができる次のリンクを確認できます。パート1 http://m.youtube.com/watch?v=P3CwlckiLTU そしてパート2 http://m.youtube.com/watch?v=HTIYt07NDRo
これを行うにはいくつかの方法があります。
1 つの方法は、Web サーバーに SQLite データベースを配置することです。次に、デバイスに既にあるデータベースと異なるかどうかを確認するために、何らかのチェックを行うことができます。たとえば、サーバーにもテキスト ファイルがあり、その中にデータベースのバージョンである 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 クラスを調査することをお勧めします。
他の方法もあると思います。
sqlite ダンプ ファイルを生成してデータベースにインポートし、必要なテーブルとデータを置き換えます。
これは、ネイティブ アプリケーションではなく、Web アプリケーションで行ったことですが、動作するはずです。