問題タブ [sqliteopenhelper]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - データベースが手動で挿入済みの項目を再挿入しないようにするにはどうすればよいですか?
データベースヘルパーと、以下のコードを含むアクティビティがあります。私が抱えている問題は、アプリケーションを実行するたびに、既に挿入されている値が再挿入されることです。私はこれが起こることを望んでいません。助けていただければ幸いです。
inserttitle メソッドにトリミングされた DBhelper クラス
android - AndroidでSQLiteOpenHelperを使用してDBを作成し始めました
SQliteOpenHelperを使用してdbテーブルを作成するときに、空のDBを事前に準備する必要がありますか?ドキュメントから。SQLiteOpenHelperの、それは述べています:
それは私を混乱させます:1。dbがいつ作成され、onCreate()メソッドをトリガーするのですか?2.データベースが存在しない場合、データベースは自動的に作成されますか?
質問を確認していただき、ありがとうございます。
android - SQLite の rawQuery() メソッドを実装するにはどうすればよいですか?
ここのコードに基づいて、SQLite rawQuery メソッドを使用しようとしています:
...しかし、次のコードで「The method rawQuery(String, String[]) is undefined for the type OdaaDBOpenHelper Authorize_Activity_DynamicControls.java」を取得します。
SQLiteOpenHelper から派生したクラスのインスタンス名と、クラス名自体 (上記のコードでコメントアウトされています) の両方を使用して試してみました。
rawQuery() を実装する、またはそれを認識/承認させるにはどうすればよいですか?
android - アプリケーションを起動するたびに SQLite テーブルを作成する必要は本当にあるのでしょうか?
複数の SQLite チュートリアルで、onCreate()
拡張するクラスのイベントでテーブルが再作成されることに気付きましたSQLiteOpenHelper
。Firefox アドインを使用して、Android 環境 (Eclipse IDE) の外部で SQLite データベースとテーブルを作成済みです。データベース テーブルは予想される場所にあります。
C:\aXX3&Space\Android\workspace\OnDemandAndAutomatic_Project\assets
毎回プログラムでそれらを再作成する必要があるのは奇妙に思えます(明らかに、それらは引き続き存在し、データを保持しますか、それとも何がポイントになるでしょうか)? ただし、現在、このアプリケーションで深刻な問題が発生しているため、次の質問に至ります。
- データベースについて毎回 Android に通知する必要はありますか?
非常に残念なことに、データベース テーブルを で作成する代わりに、以前のバージョンのアプリケーションである に配置したにもかかわらず、SQLite ファイルを適切な場所にコピーしても何も変わらないことに気付きC:\aXX3&Space\Android\workspace\OnDemandAndAutomatic_Project\assets
ました。C:\aXX3&Space\Android\workspace\OnDemandAndAutomatic\assets
私のアプリケーションが AWOL データベースを探していたことが問題の原因である場合、単にファイルをコピーして貼り付けるだけでは不十分でしょうか? データベースをディレクトリに正式に
導入するために何かをする必要がありますか? system/Android/Eclipse
助言がありますか?
android - TabActivity で SQLiteDatabase と AsyncTask を実装する場所/方法
私は基本的に、データ保存メカニズムの実装を除いて、開発中のアプリケーションを完成させました (私の最初のアプリケーションです!)。しばらく前にオプションを調べて、SQLiteDatabase を使用するのが最適であると判断しましたが、それを正確に実装する方法について頭を悩ますのは困難だったので、プログラムの残りの部分が完了するまでそのままにしておきました。それ以来、デバイスで実行するたびにすべての値を再入力してテストしています。
アプリは基本的に画面に何も表示されない状態で起動します。ユーザーは (メニューとダイアログを介して) プレーヤーを追加します。プレーヤー リストが完成したら、ユーザーはダイアログで [保存] をクリックします。次に、各プレーヤーのテーブル行が動的に拡張され、ボタン、いくつかの ImageView、および TextView が含まれ、すべて各プレーヤーのさまざまな属性が表示されます。それは私の質問にはあまり関係ありません。
したがって、私のアプリケーションは基本的に Player オブジェクトを追跡するだけです。これをガイドとして使用してデータベースオブジェクトをすべて構築しました: http://www.androidhive.info/2011/11/android-sqlite-database-tutorial/、ほとんどの場合、「連絡先」を「プレイヤー」に置き換えます。
私が理解できないのは、各プレーヤー オブジェクトの「保存」と「読み込み」を正確に実装する場所と、メイン アクティビティの onCreate、onResume、および onStop メソッドで何をすべきかということです。私はこれを何時間も調べていて、AsyncTask も実装する必要があることを学びましたが、それはさらに複雑であり、基本的なデータを脳にロードすることさえできません。 .
AsyncTask と SQLiteDatabase の両方を実装する方法の良い例が、Deitel 開発者シリーズの「Android for Programmers: An App-Driven Approach」という本を読んでいますが、その例では ListActivity で CursorAdapter を使用しているため、自分の状況に適用する方法がわかりません。(私のものはTabActivityです。上で説明したのは、「View Players」タブのみです。)
ユーザーが「プレイヤーの追加ダイアログ」で「保存」をクリックしたときにプレイヤーをデータベースに追加することは理にかなっていますが、プレイヤーオブジェクトを再ロードする場所と、各プレイヤーのテーブル行を再膨張させる場所がわかりません。
申し訳ありませんが、より正確にコードを投稿していませんが、それは一般的な質問であり、約 1000 行の長さなので、アプリ全体を投稿したくありません。どんな助けでも大歓迎です、私はここにすべての小さなことを投稿しないようにしていますが、このことは私をあまりにも長い間イライラさせてきました!
android - Androidのメモ帳チュートリアルでDBHelperが閉じられないのはなぜですか?
私は現在、最初のAndroidアプリを作成しており、ほとんどの知識はAndroidのメモ帳のチュートリアルに基づいています。
http://developer.android.com/resources/tutorials/notepad/notepad-ex3.html
私のアプリケーションでは、1つのアクティビティで複数のDBHelperを使用していますが、すべてのカーソルがstartManagingCursor()を使用してアクティビティによって管理されるわけではありません。
私は、すべてのDB接続を適切に開いたり閉じたりする必要があることを学びました。
私の知る限り、startManagingCursor()はあなたのためにこれを行います。しかし、startManagingCursor()もSQLiteOpenHelperを開いたり閉じたりしますか?
Android NotepadチュートリアルはstartManagingCursor()を使用していますが、DBHelperが閉じられることはありません。SQLiteOpenHelperが閉じられないのはなぜですか?
編集:
これは私の現在のコードです。mDriverDbHelperと呼ばれる1つのSQLiteOpenHelperを使用しています。このコードは、チュートリアルからの採用です。
プライベートDriverDbAdaptermDriverDbHelper;
このコードサンプルは機能しますが、理由がわかりません。onCreateとonStartでmDriverDBHelper.open()を2回呼び出しています。
open()およびclose()呼び出しをonPauseおよびonResumeに入れようとしましたが、エラーが発生します。
onPauseとonResumeではなくonStartとonStopでなければならない理由を誰かが知っていますか?
最終回答
チュートリアルにはclose()メソッド呼び出しがありません。アクティビティのライフサイクルと組み合わせてオープンとクローズを使用するための一般的なルールは次のとおりです。
アクティビティのライフサイクルメソッドでSQLiteOpenHelperを開いた後、対応する対応するライフサイクルメソッドでSQLiteOpenHelperを閉じる必要があります。
Android NotePadチュートリアルの場合、onDestroy()メソッドが欠落していたため、mDbHelperを閉じる必要があります。
android - Android + sqlite 挿入速度の改善?
私は最近、ユーザーのSDカードにsqlite dbが保存されているプロジェクトを継承しました(テーブルと列のみ、コンテンツなし)。初期インストール (およびその後のデータ更新) では、saxParser を介して XML ファイルが解析され、次のように内容が db 列に格納されます。
saxパーサー:
データベースヘルパー:
読み込まれた xml ドキュメントの長さは 6000 行以上です。デバイスでテストすると、約 4 ~ 5 分かかる途中 (エラーなし) で挿入が停止します。ただし、エミュレーターではかなり高速に実行され、約 20 秒ですべての行がデータベースに書き込まれます。データベースが開かれ、データが追加され、閉じられたときに実行されるログステートメントがあります。デバイスで実行すると、LogCat 出力が大幅に遅くなります。私がここに欠けているものはありますか?データの書き込みに時間がかかるのはなぜですか? 改善された InsertHelper が役立つと思いましたが、残念ながら少しも速くはありませんでした。誰かがここで私の欠陥を指摘できますか?
android - ContentProvider.getWriteableDatabase が NullPointerException をスローする
基本的に、SQLite データベースをカプセル化する ContentProvider を作成しようとしています。私はオンラインであらゆる場所を調べ、いくつかの異なるチュートリアルに従いましたが、同じ問題が発生し続けています。多くの人が同じ質問をしていることに気付きましたが、そこにあるアドバイスはどれも役に立ちませんでした。
基本的に、SQLiteOpenHelper で「getWriteableDatabase」を呼び出すたびに、null ポインター例外がスローされ、何も作成されません。これが私のコードです:
メイン アクティビティからこのオブジェクトを作成し、「挿入」を呼び出すまではすべて正常に動作します。これがクラッシュするときです。
編集:これがスタックトレースです
android - SQLiteOpenHelper "onCreate"は呼び出されませんか?(DBは存在しません)
フラグメントから、この方法でインスタンス化します
次のクラス。onCreate()が呼び出されず、データベースが作成されない理由がわかりません。
編集:トリックは、データベースを(読み取りまたは書き込みに)使用する必要があるため、onCreate()が呼び出されることです。
android - 連絡先データベースからすべての連絡先を読み取り、リストに保存する方法は?
連絡先テーブルから連絡先を読み取り、それらすべてをリスト変数に保存しようとしています..しかし、なぜそれが機能していないように見えるのかわかりません..実行時に強制終了します.連絡先を送信する必要がありますjson オブジェクトを介して Web サーバーに送信します。
マニフェストファイルには2つの権限があります
DBHelper クラスは、sqlitopenhelper を getWritableDatabase に拡張するために使用されます。
}