問題タブ [android-cursorloader]
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 - データベースクエリで選択引数の周囲の行(「周囲の行」)を返す
Androidでデータベースをクエリしています。このテーブルは、値を含む通常のテーブルであり、特別なことは何もありません。
必要なもの:指定されたタイムスタンプの前後に発生した2つのイベントを返します。
例:以下の表があり、選択したものが1332200003002であるとします。
したがって、選択が1332200003001または1332200003002の場合...返される行をn+1およびn+2Valueにして、98から90になったことを確認します。
私が使用しているのはですCursorLoaderので、通常の呼び出しに適合していることが望ましいです。
私のコードサイズはありがとう!
補足として、(すでに機能している)の安全な値を推測し、Javaの残りのいくつかの行を繰り返して、必要な2つの行を特定することができます。しかし、これは非常に一般的なニーズのように思えるので、質問です。カーソルで行う必要のある通常のバンパーテストをすべてJavaで行うのは無駄のようです。BETWEENCursor
android - 複数のContentProvider用のCursorLoader
複数のContentProviderからのデータを表示するListAdapterを作成する必要があります。ContentProvider自体は、リレーショナルデータベースからそれぞれ1つのテーブルを表します。
CursorLoaderシステムを使用して、集合データをListViewに取得したいと思います。これは1つのローダーで行うことができますか、それとも複数のローダーを使用する必要がありますか?使いたいです。
コードで手動で結合を行う以外に、2つのContentProviderを相互に対話させる方法がわかりませんが、これも優れたオプションとは思えません。
android - アクティビティまたはフラグメントには、実行されるデータベース操作のタイプごとに個別のローダーが必要ですか?
フラグメントまたはアクティビティがsqliteデータベースと対話するためのGoogle推奨の方法(Androidサポートライブラリを使用)は、AsyncTaskLoaderを拡張するローダーを介して行われ、CursorLoaderがContentProviderに対して行う方法と同様に機能するようです。
単一のアクティビティまたはフラグメントは、1つ以上のテーブルのデータを更新、削除、およびクエリするなど、さまざまな方法でデータベースと対話できます。しかし、ローダーにはデータベース操作を実行する場所が1つしかないため(つまり、でloadInBackground())、開発者は、対話のタイプごとに個別のローダーを作成する必要があります。特に、での動作をパラメーター化する唯一の方法loadInBackground()は、? へのargs引数を介したローダーのコンストラクターへの引数LoaderManager.initLoader()
どうもありがとう。
android - Android CursorLoader が ContentProvider 通知に応答しない
CursorLoader (v4 互換性ライブラリを使用) を使用するように Android 2.2 アプリケーションを更新していますonLoadFinished。コンテンツ プロバイダーが CursorLoader クエリに関連付けられたコンテンツの変更を通知したときにメソッドが呼び出されない理由を理解しようと、頭を悩ませています。 .
CursorLoader は、顧客のコンテンツ プロバイダーにクエリを実行しています。私のプロバイダーは、クエリ メソッドで通知 URI を設定します。
挿入/更新/削除メソッドの変更を通知します。
どちらの場合も URI が同一であることを確認しました。以前は、同じコンテンツ プロバイダーで ManagedQuery を使用していましたが、クエリを実行したコンテンツは適切に更新されていたため、コンテンツ プロバイダーはおそらく問題ないと思います。
LoaderCursorSupportの例を見てきましたが、興味深いことに、Nexus One で実行すると、連絡先の名前に加えた変更 (サンプル アプリと連絡先アプリの切り替え) が反映されていません。それはすべきですか?もしそうなら、私が気付いていない根本的な問題はありますか?
android - Android CursorLoader vs AsyncQueryHandler?
CursorLoader と AsyncQueryHandler の両方を実装する方法を見てきました。これを SimpleCursorTreeAdapter の Android 2.2 アプリケーションに使用したい場合、どちらを使用すればよいですか?
android - SQLiteCursorLoaderにデータの変更を監視させる
Commonswareのローダーを使用するアダプターを使用してDataListFragmentを実装しようとしています。このローダーはSQLiteDatabaseを直接使用し、ContentProviderを使用する必要はありません。
androidリファレンスには、ローダーについて次のように記載されています。「ローダーがアクティブな間は、データのソースを監視し、コンテンツが変更されたときに新しい結果を提供する必要があります。」
私のSQLiteCursor実装(下記)では、これは起こりません。OnLoadFinished()一度呼び出されるとそれだけです。おそらく、Loader.onContentChanged()基になるデータベースが変更された場所に呼び出しを挿入できますが、一般にデータベースコードクラスはローダーについて認識していないため、これを実装するための最善の方法がわかりません。
ローダーを「データ対応」にするためのアドバイスはありますか、それともデータベースのものをContentProviderとしてラップし、代わりにCursorLoaderを使用する必要がありますか?
android - AndroidのAsynctaskに対するローダーの利点は何ですか?
非同期タスクに対するローダーの利点はありますか? また、ローダーを Android froyo を搭載した携帯電話に対応させる方法。
編集:
ここでの主な問題は、ネイティブ DB (SqlLite) を使用していないことです。開発サーバーでDBを使用。当然、もう使えませんCursorLoader。AsyncTaskLoaderには例がまったくありません。あればリンクお願いします。
必要なデータをローカル DB にロードし、それを使用してクエリを実行することをお勧めしますCursorLoaderか?
android - AsyncTaskLoader を使用したフラグメントは、他のフラグメントのアクティビティへのアタッチに影響を与えます
AsyncTaskLoader を使用して、データベース クエリからカーソルをロードしました。私は Android 開発者のサンプルに従いました: http://developer.android.com/reference/android/content/AsyncTaskLoader.html
しかし、どういうわけか、このフラグメント (ローダーを使用する) の後にページ アダプターに追加されるフラグメントは、アクティビティにアタッチされず、アクティビティを必要とするメソッド (getString() など) を使用しようとすると、例外がスローされます。このフラグメントはどのアクティビティにも関連付けられていません。
ここにいくつかのコードがあります:
ページ アダプターにフラグメントを追加します。
/li>AsyncTaskLoader の実装:
抽象公開クラス AbstractCursorLoader extends AsyncTaskLoader {
/li>ローダーの初期化:
}
/li>
なぜそれが起こっているのか、私には本当に手がかりがありません。
PSコメントでコードブロックを作成する際に問題が発生しました。バグがあると思います。申し訳ありません。
前もってありがとう、エラド。
android - CursorLoader が DB 全体を表示しない
データベースにクエリを実行する ( 内にある ) がCursorLoaderありListFragmentます。ViewPager私はそのデータベースのコンテンツ プロバイダーを持っており、これが動作することを確認しました。
問題は次のとおりです。アプリが初めて実行されると、別のサービスが次のように一括挿入を呼び出しContentProviderます。
リストのCursorLoaderフラグメントは、最初の実行時 (データベースが作成されたとき) に 0 行を返します。アプリを閉じて再起動すると、CursorLoaderうまく機能し、必要なものが正確に返されます。ハンドラーを介して待機を実装しようとしましたが、役に立たないようです。ListFragmentを利用するのは次のとおりCursorLoaderです。
なぜこれが起こっているのか、または少なくとも正しい方向に私を導くことができる人はいますか? ありがとう!
android - Android eclipse startManagingCursor 非推奨ですが、古い API バージョンをサポートしたいですか?
私は何かを理解しようとしていますが、それが一部の人々にとって非常に基本的なものであることは確かです。
startManagingCursor メソッドは非推奨であり、CursorLoader クラスを使用する必要があることをどこでも読みました。しかし、API レベル 11 未満をサポートするアプリでも、CursorLoader クラスを使用する必要があるということでしょうか? それとも、Honeycomb 以降のみをサポートする場合は、cursorLoader を使用するということですか?
API 4 でカーソル ローダー クラスをインポートできないようです。そのため、CursorLoader の使用は Android 3.0 以降まで適用されないと思いますが、誰かが確認してください。
ありがとう