問題タブ [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 - SQLiteOpenHelper-SDカードにデータベースを作成する
私のテスト用Androidアプリでは、SDカードにあるデータベースファイルを作成してアクセスする予定です。SQLiteOpenHelperを拡張するクラスの助けを借りてメインアクティビティを使用しています。以前と同じように使用したいのですが、どういうわけかデータベースのPATHを変更する必要があります。あなたはそれを達成する方法を知っていますか?
どうも
SQLiteOpenHelperを拡張するクラスの現在のコード:
そして私のメインのコード:
android - Android が SQLite データベースを更新しない
Android アプリケーションの SQLIte データベースで問題が発生しています。問題は、エミュレーターや Eclipse を複数回再起動したり、DDMS から削除したりしても、データベースが更新されないことです。
これは、SQLiteOpenHelper を拡張するクラスにある私の onCreate メソッドです。
ヘルパーをインスタンス化した後、データベースへの参照をリクエストします。
(後で追加された) rawQuery ステートメントは実行されず、代わりに使用中のデータベースが以前のバージョンからキャッシュされているようです。データベースのバージョンも変更しようとしましたが、うまくいきませんでした。何か不足していますか?前もって感謝します。
android - Androidは、アプリにバンドルされたライブラリとしてContentProviderを配布します
私は、基本的な動作(データベースからランダムな単語を選択してそれらを組み合わせる)を共有する一連のノベルティアプリケーションに取り組んでいます。それらはすべて基本的に同じように機能するため、コードのベースをある種のテンプレートとして扱い、結果がまちまちでした。
更新に取り組んでいるときに、プロジェクトをもう少しMVCに適したものにしたいと思い、単純なSQLiteOpenHelperの代わりにContentProviderの使用を検討し始めました。グーグルのドキュメンテーションはそれらの使用について信じられないほど固執しているので、私はこのように傾いています。私の問題は、名前の衝突の領域にあります。
TL;DR質問はここをスキップしてください。
2つのサードパーティのAndroidアプリケーション(同じ開発者によって作成された)が両方とも同じContentProviderを使用したいが、インストールされている別のアプリケーションに依存しない場合、両方にContentProviderのコピー(同じ権限とすべてのもの)を含めて許可できますか?同時にインストールする必要がありますか(利用可能な最高バージョンのContentProviderを使用して)?
これがコンテンツプロバイダーの設定方法で可能かどうかはわかりませんが、これは一枚岩のようです。グーグルがこれを潜在的な問題または望ましい機能と見なしていなかったとは想像できません。はい、いくつかの複雑さが生じる可能性がありますが、dll地獄や他の同様の名前の問題を克服しました...正しく行うのはそれほど難しいことではありません。
android - DatabaseObjectNotClosedException
この例外についていくつかの質問があることに気付きました。しかし、彼らは私の問題を解決しません。
SQLiteOpenHelper を拡張する内部クラスを持つ databaseHelper クラスがあります。
データベースを継続的に更新するサービスがあります。そして、 db からデータをフェッチするアクティビティ。
サービスとアクティビティの両方で、dbHelper が作成されます。
そして、私は DatabaseObjectNotClosedException を取得します。DatabaseHelper を閉じる必要がありますか? どうすればいいですか?または、どうすればこの問題を解決できますか?
android - Android AsyncTask と SQLite DB インスタンス
私には問題があり、それにどのようにアプローチすればよいかわかりません。私のアプリのアクティビティには、AsyncTask
単一の にアクセスする複数の がありますSQLiteOpenHelper
。でヘルパーを初期化して開き、でonCreate()
閉じていonStop()
ます。で初期化されているかどうかも確認しonResume()
ます。
アプリを公開してdoInBackground
から、DB ヘルパーにアクセスしようとしたところ、Null Exception で多数のエラーを受け取りました。が呼び出されるonStop()
直前にDB が閉じられている () ため、これが発生することはわかっています。doInBackground
私の質問は、どこで DB 接続を閉じる必要があるかということです。アクティビティで DB ヘルパーの 1 つのインスタンスを使用し、複数のスレッドからアクセスすることは正しいAsyncTasks
ですか? ( ) または、それぞれに個別の DB ヘルパー インスタンスを使用する必要がありますAsyncTask
か?
これは私の活動の単純化されたスケルトンです:
android - ContentProviderを使用して、Androidのデータベースにデータアクセスを指示することは可能ですか?
データベースへの直接データアクセスを使用するアプリケーションがあります。他のアプリケーションのためにそれ以外に公開するものは何もありません。CommonsWareがSOのどこかで述べているように、「公開するものがない場合は、ContentProviderを使用しないでください」。次に、データベースに格納しているテーブルの1つからいくつかの文字列を表示するウィジェットを追加します。ContentProviderパターンへの直接アクセスコードをリファクタリングする必要がありますか?ウィジェットからデータベースへの直接アクセスを使用する方法はありますか?1つのアプリケーションでContentProviderとデータベースへの直接アクセスの両方を行う方法はありますか?
android - onCreate は SQLiteOpenHelper のコンストラクターではありませんが、getIntet には必要です
getIntent を使用する必要がありますが、SQLiteOpenHelper のコンストラクターではなく、onCreate 内から getIntent を使用する必要があるため、使用できません。
この場合、SQLiteOpenHelper 内からアクセスするにはどうすればよいですか?
基本的に、SQLiteOpenHelper 内から次のコードを動作させようとしていますが、問題が発生しています。
String の値に基づいて、データベースのクエリの並べ替えを実行しようとしています。そのようです:
コード全体は次のとおりです。
}
android - Library ProjectにあるMyApplicationから呼び出されると、super.getWritableDatabase()がクラッシュします
同じように設計されたアプリがいくつかあります。拡張アプリケーションはデータベース接続を保持し、拡張SQLiteOpenHelperはすべてのコードを保持します。
これは、標準のAndroidプロジェクトで使用した場合に機能します。
拡張アプリケーションがライブラリプロジェクトにある場合、クラッシュします。
次のコードは、拡張アプリケーションクラスです。これは、ライブラリプロジェクトにあります。ライブラリプロジェクトで使用するとクラッシュしますが、ライブラリプロジェクトのない標準のAndroidアプリの一部である場合はクラッシュしません。MyApplicationクラスをライブラリプロジェクトからプロジェクトに移動しようとしました(マニフェストで名前を変更しました)-成功しませんでした。
私の推測では、ここで釣りをしているだけですが、MySQLiteOpenHelperは、プロジェクト自体ではなく、ライブラリプロジェクトの権利/許可/場所を使用していると思います。
これは、拡張SQLiteOpenHelperクラスの一部です。
これは、図書館プロジェクトのマニフェストです。
これはプロジェクトマニフェストの一部です:
なぜこれが機能しないのかわかりません。おそらくコンテキストのことですが、エラーはファイルを指しています。手がかりはありません。
このアプローチに何か問題がありますか?標準のAndroidプロジェクト環境で完璧に機能します。
よろしくお願いします。
編集:
StacktraceはLog.dでクラッシュを示していますが、失敗しているのはデータベース呼び出しです。
android - Android SQLITE データベースとスピナー
こんにちは、アンドロイドの初心者です。実際には、選択したデータを Db からスピナーに追加するコードが必要です。項目を選択すると、Db の列の詳細が表示されます。DB のフィールド: 1.銀行名 2.口座番号 3.金額の詳細 4.タスク 注:(銀行名をスピナーに追加する必要があります。スピナーで銀行名を選択すると、口座番号、金額の詳細、リストビューのタスク)。
android - SQLite データベースを使用した Android スピナー
MyOnItemSelectedListener を使用してアイテムをスピナーに入力しましたが、動作します。私の問題は、この後、スピナーの下のリストビューでデータベースの詳細を設定する方法です。onItemSelected の後にどのコードを記述すればよいですか?