0

元気にしていることと思います。

JSONを使用してサーバー側からデータを取得し、このデータをAndroidのSQLに保存してから、Listviewを使用してこのデータを表示するAndroidアプリを開発しています。

いくつかの行を追加または削除して、サーバー側にあるデータを更新する必要があります。

問題はここにあります.Listviewに表示できるように、サーバー側に追加された新しい行のみをAndroidのSQLに挿入するにはどうすればよいですか?

また、サーバー上のデータベースから行を削除するときに、アンドロイドの SQL から行を削除して、リストビューに表示できないようにするにはどうすればよいですか?

前もって感謝します。

4

3 に答える 3

0

通常、データベースと通信するために何らかのDAOを実装します。次に、メソッドを呼び出してレコードを取得します。

車を持っているとしましょう。モデル クラスCarを作成すると、アダプタは;ListViewを待機する必要があります。List<Car> carsこのリストを取得するにCarDao.findAll()は、車のリストを返すようなことをします。

そのfindAll()メソッドでは、考えられるあらゆるロジックを実装できます。たとえば、Web サーバーから行を取得し、必要に応じてローカル データベースに書き込み、そこから * を選択します。または何でも。常に最新のデータ (この場合は車のリスト) を返すようにしてください。

同じことは、データベースの更新にも当てはまります。呼び出すCarDao.delete(id carId);ことでうまくいくはずです。sqlite db から行を削除し、削除要求をサーバーに送信してから、ローカル データベースからリスト ビュー アダプターを更新します。

あなたの質問が正しいことを願っています。

于 2013-11-11T11:12:05.750 に答える
0

モバイル データベースがサーバー サイド データベースと 100% 整合性をとることを目指す必要がある場合はほとんどありません。モバイル デバイスの性質上、常にサーバーに接続しているとは限りません。

これを念頭に置いて、手動で SQL セットアップを使用してレプリケートされたデータベースをデバイスに保持することは (わずかなオンであっても)、すぐに悪夢になる可能性があります (タイムアウト、待ち時間、ロック、同期などを考えると)。

必要に応じて更新するローカル データベースではなく、複製されたデータベースが本当に必要な場合は、結果整合性を促進するリモート データベース テクノロジを調査する必要があります。この問題。

ここを読んでみてください: http://developer.android.com/training/cloudsync/index.html

そしてここ: http://developer.android.com/training/sync-adapters/index.html

SQL データベースの同期を自分で処理することは、1 つの質問では答えられないほど難しい場合があります。

于 2013-11-11T10:51:57.017 に答える
0

removeItem および additem レスト サービスを作成します。必要に応じてサービスを呼び出します。

サーバーからクライアントに変更をプッシュする場合は、gcm を使用できます。

シンプルで簡単な方法です。

于 2013-11-11T10:47:05.577 に答える