問題タブ [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.

0 投票する
1 に答える
1019 参照

android - 無限ループのアンドロイドカーソル

カーソルローダーからのカーソルがあります。問題は、そのカーソルを移動しようとすると、前方に移動せず、無限ループに陥ることです。

0 投票する
2 に答える
1518 参照

android - 共有しないアプリにはコンテンツプロバイダーが必要ですか?

SimpleCursorAdapterクラスが非推奨になり、新しいLoader APIを利用する必要があることに気付いたので、これを利用しようとしましたが、そうしようとすると、CursorLoaderはContentProviderでのみ機能することがわかりました。

今私の質問は、私は本当にコンテンツプロバイダーが必要ですか?公式ガイドでさえ次のように述べています。

データを他のアプリケーションと共有する予定がない場合は、独自のプロバイダーを開発する必要はありません。ただし、独自のアプリケーションでカスタム検索候補を提供するには、独自のプロバイダーが必要です。また、アプリケーションから他のアプリケーションに複雑なデータやファイルをコピーして貼り付ける場合は、独自のプロバイダーが必要です。

そして、私はこれについて何も必要ないと思います+したがって、それは不必要な複雑さを生み出します。だから..どうすればいいですか、自分のCursorLoaderをハックして、このようなデータベース(ContentProviderなしのCursorLoaderの使用法)でのみ機能するようにします。正直なところ、これは本当に好きではありません。

ありがとう!

0 投票する
1 に答える
1243 参照

search - CursorLoaderはlistViewを更新しませんが、カーソルは正しい結果になります

Android 3.0より前の互換性のあるアプリにsearchViewを実装していて、適切なlistViewの再配置に苦労しています。サポートライブラリに問題があると思います。あるいは、使用できないonQueryTextChangedListenerのEditTextisteaのtextChangeListenerを介したまれな実装でも問題があると思います。何か助けはありますか?

コードは次のとおりです。

0 投票する
1 に答える
8596 参照

android - CursorAdapter と LoaderCallbacks を使用してフラグメントに ContentObserver を実装する方法は?

コメントのリストを読み込んで表示するためにCursorAdapterを使用しています。ListFragment

関連する ContentProviderで、挿入アクションnotifyChange()用に追加しました。

質問:

  1. にオブザーバーのパラメータとして渡しnullてもよろしいでしょうか?notifyChange()そうでない場合、ここでどのオブジェクトを渡す必要がありますか?
  2. uriまたはを渡す必要がitemUriありnotifyChange()ますか? なんで?
  3. CommentsObserver#onChange()コメントのリストを更新するには、どのメソッドを呼び出す必要がありますか?
  4. ListFragmentの内部クラス インスタンスの代わりに実装できるインターフェイスはありませんContentObserverか?
  5. new Handler()のコンストラクターでa をインスタンス化するだけですCommentsObserver。これは私には正しくないようです - 説明してください。
0 投票する
1 に答える
2772 参照

android - IllegalStateException - AutocompleteTextView で LoaderManager をサポート

CursorLoaders と Loadermanagers を使用する利点の 1 つは、カーソルのライフサイクルを手動で管理する必要がないことです。そこで、loadermanager を使用して、サポート パッケージを使用してアダプターを AutoCompleteTextView にバインドしました。

「IllegalStateException - すでに閉じられているオブジェクトを再度開いてみてください」というエラーがランダムにスローされることを除けば、非常にうまく機能します。ローダー マネージャーを使用している場合、このようなことは起こらないのではないでしょうか?

コードは次のとおりです。

エラースタックは次のとおりです。

何が間違っている可能性がありますか?

0 投票する
1 に答える
1396 参照

android - ListViewに表示する前にカーソルのデータを操作する方法(ローダーを使用)?

my の各アイテムには、名前と 2 つの数字のSherlockListFragment3 つの s が含まれています。データは、次の構造を持つ私のデータベースTextViewのテーブルから取得されます。objective

さらに、カーソルからのリストへの入力は、ローダーを使用して行う必要があることを読みました (特にデータベースを使用する場合は、操作が非常に遅くなる可能性があるため)。ここで stackoverflowSimpleCursorLoaderでクラスを見つけましたが、データをフィールドに直接マップします。

ご覧のとおり、私のobjectiveテーブルにはactivity_code. したがって、それを文字列に置き換えたいと思います(すべてのアクティビティコードをリストし、それぞれに文字列リソース識別子を返す Enum があります)。

sに表示される前にデータを操作する方法を知っていますTextViewか?

これが私のSherlockListFragment

EDIT:SimpleCursorLoader> loadInBackgroundでカーソルとデータベースを閉じる必要はありませんよね?そうしないと、データを読み取ることができませんでした。閉鎖操作は自動的に処理されますか、それとも他の場所で自分で行う必要がありますか?

0 投票する
2 に答える
2260 参照

android - SimpleCursorAdapterを使用したonLoaderFinishedのNullPointerException

以前使用していた場所から、メソッドのみをResourceCursorAdapter使用newViewbindViewている場所に切り替えました。SimpleCursorAdaptergetView

今、私はにエラーがありますonLoaderFinished。それは私のアダプターとカーソルオブジェクトの両方で私に与えますがnullではありNullPointerExceptionませ。以下にすべてのコードを投稿します。どんな助けでも大歓迎です(引き抜くためにあまり髪が残っていません)。adapter.swapCursor(cursor)

0 投票する
1 に答える
1756 参照

android - CursorLoader を使用して ListView でさまざまなクエリを処理する

sqliteデータベースのさまざまなテーブルのデータを、さまざまな時点で単一のListViewに反映したいと考えています。

最初のクエリは正常に機能します。これは次のようになります。

  • AutoCursorAdapter extends CursorAdapterCursor から任意のデータを表示できる カスタム CursorAdapter クラス ( ) があります。
    • AutoCursorAdapter.newView()カーソルを調べて、列のデータ型に対応するビューを構築します。
    • AutoCursorAdapter.bindView() は、カーソルからデータを取得し、カーソル内の各データ行に対して newView で作成されたビューを設定します。
  • 次のように、所有する Fragment にローダーも実装します。

    /li>

ここまでは順調ですね。データは初回実行時にロードされます。URI_A を使用して、テーブル A からデータを取得して表示するとします。

しかし、問題は次のとおりです。ユーザーのアクションに応じて、URI_B を使用してテーブル B からデータを表示するように切り替えたい場合、どのように対処すればよいでしょうか。

  • 単一の Loader インスタンスでこれを行うことはできますか?

    1. もしそうなら、どのように?たとえばCursorLoader.setUri()、リロードをトリガーしません。
    2. そうでない場合、複数のローダー インスタンスを適切に管理するにはどうすればよいですか?
  • これは、おそらくローダーが向いていない例ですか?

注: 問題は、テーブル A の基礎となる DB に反映された変更に関するものではありません。これは、NotifyChange メカニズムを介して UI で正しく更新されます。この質問は、基になるクエリの性質を完全に変更することに関するものです。

0 投票する
1 に答える
418 参照

android - ContentProviderに特定のIDを照会する

連絡先テーブルがあり、特定のIDのみを取得する必要があります。

IDが1から10の連絡先が10個ありCursor、連絡先1と2の連絡先を取得したいとします。

動作するコードは次のようになります。

私の問題はselectionArgs、エスケープするとクエリが壊れてしまうため、パラメータを使用できないことです。

selectionArgsパラメータを使用してこれを機能させる方法を考えられますか?

0 投票する
1 に答える
2568 参照

spinner - カーソルローダーからスピナーを設定する方法は?

私はこれを理解するために何日も費やしましたが、運がありません。こちらから回答いただければ幸いです。cursorLoader メソッドを使用して、コンテンツ プロバイダからスピナーにデータをロードしようとしました。スピナーはデータを受け取ったようですが、いくつかのドロップダウン項目 (テキストなし) が作成されていましたが、ドロップダウン リストにデータが見つかりませんでした。

同じカーソルを使用してデータを取得して配列に入れ、配列をスピナーにバインドすると、すべてのアイテムが正しく表示されるため、問題はプロバイダーからではないと思います。

以下は私のコードです、

そして私のレイアウトxml:

そして、抽出した ShopperProvider クラスから、