問題タブ [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 - 共有しないアプリにはコンテンツプロバイダーが必要ですか?
SimpleCursorAdapterクラスが非推奨になり、新しいLoader APIを利用する必要があることに気付いたので、これを利用しようとしましたが、そうしようとすると、CursorLoaderはContentProviderでのみ機能することがわかりました。
今私の質問は、私は本当にコンテンツプロバイダーが必要ですか?公式ガイドでさえ次のように述べています。
データを他のアプリケーションと共有する予定がない場合は、独自のプロバイダーを開発する必要はありません。ただし、独自のアプリケーションでカスタム検索候補を提供するには、独自のプロバイダーが必要です。また、アプリケーションから他のアプリケーションに複雑なデータやファイルをコピーして貼り付ける場合は、独自のプロバイダーが必要です。
そして、私はこれについて何も必要ないと思います+したがって、それは不必要な複雑さを生み出します。だから..どうすればいいですか、自分のCursorLoaderをハックして、このようなデータベース(ContentProviderなしのCursorLoaderの使用法)でのみ機能するようにします。正直なところ、これは本当に好きではありません。
ありがとう!
search - CursorLoaderはlistViewを更新しませんが、カーソルは正しい結果になります
Android 3.0より前の互換性のあるアプリにsearchViewを実装していて、適切なlistViewの再配置に苦労しています。サポートライブラリに問題があると思います。あるいは、使用できないonQueryTextChangedListenerのEditTextisteaのtextChangeListenerを介したまれな実装でも問題があると思います。何か助けはありますか?
コードは次のとおりです。
android - CursorAdapter と LoaderCallbacks を使用してフラグメントに ContentObserver を実装する方法は?
コメントのリストを読み込んで表示するためにCursorAdapter
を使用しています。ListFragment
関連する ContentProviderで、挿入アクションnotifyChange()
用に追加しました。
質問:
- にオブザーバーのパラメータとして渡し
null
てもよろしいでしょうか?notifyChange()
そうでない場合、ここでどのオブジェクトを渡す必要がありますか? uri
またはを渡す必要がitemUri
ありnotifyChange()
ますか? なんで?CommentsObserver#onChange()
コメントのリストを更新するには、どのメソッドを呼び出す必要がありますか?ListFragment
の内部クラス インスタンスの代わりに実装できるインターフェイスはありませんContentObserver
か?new Handler()
のコンストラクターでa をインスタンス化するだけですCommentsObserver
。これは私には正しくないようです - 説明してください。
android - IllegalStateException - AutocompleteTextView で LoaderManager をサポート
CursorLoaders と Loadermanagers を使用する利点の 1 つは、カーソルのライフサイクルを手動で管理する必要がないことです。そこで、loadermanager を使用して、サポート パッケージを使用してアダプターを AutoCompleteTextView にバインドしました。
「IllegalStateException - すでに閉じられているオブジェクトを再度開いてみてください」というエラーがランダムにスローされることを除けば、非常にうまく機能します。ローダー マネージャーを使用している場合、このようなことは起こらないのではないでしょうか?
コードは次のとおりです。
エラースタックは次のとおりです。
何が間違っている可能性がありますか?
android - ListViewに表示する前にカーソルのデータを操作する方法(ローダーを使用)?
my の各アイテムには、名前と 2 つの数字のSherlockListFragment
3 つの s が含まれています。データは、次の構造を持つ私のデータベースTextView
のテーブルから取得されます。objective
さらに、カーソルからのリストへの入力は、ローダーを使用して行う必要があることを読みました (特にデータベースを使用する場合は、操作が非常に遅くなる可能性があるため)。ここで stackoverflowSimpleCursorLoader
でクラスを見つけましたが、データをフィールドに直接マップします。
ご覧のとおり、私のobjective
テーブルにはactivity_code
. したがって、それを文字列に置き換えたいと思います(すべてのアクティビティコードをリストし、それぞれに文字列リソース識別子を返す Enum があります)。
sに表示される前にデータを操作する方法を知っていますTextView
か?
これが私のSherlockListFragment
EDIT:SimpleCursorLoader> loadInBackgroundでカーソルとデータベースを閉じる必要はありませんよね?そうしないと、データを読み取ることができませんでした。閉鎖操作は自動的に処理されますか、それとも他の場所で自分で行う必要がありますか?
android - SimpleCursorAdapterを使用したonLoaderFinishedのNullPointerException
以前使用していた場所から、メソッドのみをResourceCursorAdapter
使用newView
しbindView
ている場所に切り替えました。SimpleCursorAdapter
getView
今、私はにエラーがありますonLoaderFinished
。それは私のアダプターとカーソルオブジェクトの両方で私に与えますがnullではありNullPointerException
ません。以下にすべてのコードを投稿します。どんな助けでも大歓迎です(引き抜くためにあまり髪が残っていません)。adapter.swapCursor(cursor)
android - CursorLoader を使用して ListView でさまざまなクエリを処理する
sqliteデータベースのさまざまなテーブルのデータを、さまざまな時点で単一のListViewに反映したいと考えています。
最初のクエリは正常に機能します。これは次のようになります。
AutoCursorAdapter extends CursorAdapter
Cursor から任意のデータを表示できる カスタム CursorAdapter クラス ( ) があります。AutoCursorAdapter.newView()
カーソルを調べて、列のデータ型に対応するビューを構築します。- AutoCursorAdapter.bindView() は、カーソルからデータを取得し、カーソル内の各データ行に対して newView で作成されたビューを設定します。
次のように、所有する Fragment にローダーも実装します。
/li>
ここまでは順調ですね。データは初回実行時にロードされます。URI_A を使用して、テーブル A からデータを取得して表示するとします。
しかし、問題は次のとおりです。ユーザーのアクションに応じて、URI_B を使用してテーブル B からデータを表示するように切り替えたい場合、どのように対処すればよいでしょうか。
単一の Loader インスタンスでこれを行うことはできますか?
- もしそうなら、どのように?たとえば
CursorLoader.setUri()
、リロードをトリガーしません。 - そうでない場合、複数のローダー インスタンスを適切に管理するにはどうすればよいですか?
- もしそうなら、どのように?たとえば
これは、おそらくローダーが向いていない例ですか?
注: 問題は、テーブル A の基礎となる DB に反映された変更に関するものではありません。これは、NotifyChange メカニズムを介して UI で正しく更新されます。この質問は、基になるクエリの性質を完全に変更することに関するものです。
android - ContentProviderに特定のIDを照会する
連絡先テーブルがあり、特定のIDのみを取得する必要があります。
IDが1から10の連絡先が10個ありCursor
、連絡先1と2の連絡先を取得したいとします。
動作するコードは次のようになります。
私の問題はselectionArgs
、エスケープするとクエリが壊れてしまうため、パラメータを使用できないことです。
selectionArgs
パラメータを使用してこれを機能させる方法を考えられますか?
spinner - カーソルローダーからスピナーを設定する方法は?
私はこれを理解するために何日も費やしましたが、運がありません。こちらから回答いただければ幸いです。cursorLoader メソッドを使用して、コンテンツ プロバイダからスピナーにデータをロードしようとしました。スピナーはデータを受け取ったようですが、いくつかのドロップダウン項目 (テキストなし) が作成されていましたが、ドロップダウン リストにデータが見つかりませんでした。
同じカーソルを使用してデータを取得して配列に入れ、配列をスピナーにバインドすると、すべてのアイテムが正しく表示されるため、問題はプロバイダーからではないと思います。
以下は私のコードです、
そして私のレイアウトxml:
そして、抽出した ShopperProvider クラスから、