問題タブ [android-loadermanager]

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 に答える
4161 参照

android - Android CursorLoader および LoaderManager エラー

最小 API 10 で CursorLoader と LoaderManager を実装しようとしています。

ただし、AsyncTaskLoader.class の 63 行目で IllegalArgument Exception が発生し続けます (例外が発生している AsyncTaskLoader.class のソース コードは以下とこのリンクにあります。

以下は、エラー時のスタックです。

コンテンツ プロバイダーをテストし、クエリ メソッドが Sqlite データベースから有効なカーソルを返すことを確認しました。以下は、CursorLoader と LoaderManager を実装しようとしているアクティビティのソース コードです。

ここで私が間違っていることを誰かが見ていますか?

ありがとう。


アプリはそれを作るようです

そして、そこで例外をスローします。

以下はlogcatです:

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

android - LoaderManager と java.lang.NullPointerException エラー

私はアンドロイドで断片化を勉強しています、私はこの簡単なプログラムを書きます: このアプリケーションではリストビューを作成したいのですが、バックグラウンドスレッドは作成しません。このスレッドはログファイルに書き込みます

これが主な活動です

これは私のListFragmentです:

ここで activity_main.xml を見ることができます

activity_main.xml

問題が存在すると思いますが、getLoaderManager修正方法がわかりません。

編集

アプリケーションを実行すると、logcat に次のように表示されます。

問題はこのコードだと思います

このコードを削除するとすべてうまくいきますが、この状況があるためわかりません。

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

android - 複数のローダーがローダーマネージャーで使用されている場合、アンドロイドは向きの変更時に正しいローダー状態を維持しません

アプリケーションで 4 つのローダーを使用して、リストビューにデータをロードしています。向きを変更すると、ローダー マネージャーは常に最初のローダーをロードしようとします。この問題を解決するために、アプリケーションの「onResume」でローダーを再起動しています。これで、リストビューにデータが取り込まれましたが、向きが変更される前のリストの位置は維持されません。方向の変更時にローダーの状態を維持する方法はありますか?

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

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

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

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

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

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

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

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

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

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

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

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

android - ダイナミックローダーを使用して、ListFragmentsなしでViewPagerにListViewページをロードするためのパターン?

特定のページ数のを持っている場合ViewPager、フレームワークを使用して各ページのデータをロードするための最良の方法は何でしょうLoaderか?各ページには、独自のアダプタインスタンスを持つListViewが含まれています。

  1. ページごとに個別のローダーを使用します。また
  2. ロードされていないページをチェックしてロードするシングルローダーを使用する

重要なのは、ユーザーが大量のページをすばやくスワイプしたい場合があるため、パフォーマンス上の理由で不要なページの読み込みを簡単に「キャンセル」できるはずです。

一方で、ローダーが多いとオーバーヘッドが発生する可能性があります。

編集:Loaderは実際に、ロードしているコンテンツを表すために動的IDを持っている必要があります。おそらくローダーIDにマスクを使用して、ローダーが完了したらを呼び出しますdestroyLoader()

0 投票する
3 に答える
2430 参照

android - SimpleCursorAdapterが拡張されたnullPointerException

カスタムプロバイダーとローダーについて学んでいます。GridView簡単な例として、外部SDカードに保存されている画像を表示するを実装しようとしています。たくさん読んだことがありますが(ドキュメント、SOのスレッド、Googleグループ、フォーラムなど)、コードを機能させることができません。この例にはいくつかの問題が存在する可能性があることは知っていますが、段階的に進めていきたいと思います。コードを停止する最初のエラーはですNullPointerExceptionので、私の質問はそれを修正する方法です。

これは私の最小バージョンですActivity(サポートライブラリv4を使用しています):

そしてこれは私の拡張SimpleCursorAdapterです:

コードを実行すると、logcatはアダプタNullPointerExceptionのメソッドにを表示します。getCount()カーソルがアダプタに渡されていないようです。

更新

アクティビティでは、次の理由により、カーソル引数としてアダプタコンストラクタにnullを渡します。

  • 使用しているので、カーソルへの参照を取得する方法がわかりませんgetSupportLoaderManager().initLoader()
  • 同じ理由で他のSOスレッドでも同じことが行われ、それらのスレッドでは正常に機能しているようです。

更新

これはlogcatの出力です

助けていただければ幸いです。TIA

0 投票する
3 に答える
4061 参照

android - 画面の回転後に CursorLoader でデータをロードするときに例外が発生する

Nexus 7 タブレットで実行しているアプリケーションで奇妙な問題が発生しています。カスタム ContentProvider から CursorLoader でデータをロードする 2 つのフラグメントがあります。

アプリケーションを起動すると、横向きモードと縦向きモードの両方で正常に動作し、ローダーはデータを適切にロードします。画面を回転すると問題が発生します。アクティビティと両方のフラグメントが正しく再作成され、期待どおりにローダーが再び開始されます。彼らはデータをロードします(両方のローダーで onLoadFinished が呼び出されることをデバッグしました)が、その後、アプリケーションは次の例外を除いて FC になります。

正直なところ、スタックトレースは私のコードへの参照が含まれていないため役に立ちません。また、上記のように、アプリケーションを初めて起動したときに両方のフラグメントが機能し、電話のレイアウトで適切に機能するため、かなり奇妙な問題です。画面の回転後にタブレットのレイアウトでクラッシュします。

編集:

両方のフラグメントで、単に getLoaderManager.initLoader(....); を呼び出すメソッド onActivityCreated メソッドにデータをロードします。

これは私がローダーを作成した方法です:

最初のフラグメント

2 番目のフラグメント:

これは、私の CP のコンテンツ uri の宣言です。

0 投票する
3 に答える
3313 参照

android - アンドロイドロケーションリスナー

同じリスナーと実装から GPS と NETWORK ロケーション プロバイダーの両方をリッスンしたい

これは大丈夫ですか:

両方のプロバイダーに同じメソッドを使用しますか?

0 投票する
0 に答える
532 参照

android - Spinner onSelectedItem 呼び出しでの Cursor Loader 自動再クエリ

アクションバー項目としてスピナーを使用しています (スワイプによるタブ ナビゲーションも使用しています)。ローダーを使用してデータをロードする 2 つの listFragments (タブからアクセス) があります。スピナーで別のアイテムを選択するたびに、ローダーが再クエリを実行するようにします (アクティビティ レベルで動作します)。これはフラグメントのローダーの呼び出しの 1 つです。selectedNumber は、スピナー onSelectedItem からフラグメントに渡される文字列です (方法はまだわかりませんが、これは簡単なはずです)。

ローダーに強制的にコンテンツ プロバイダーを再クエリさせる方法はありますか? または、フラグメントをキャンセルして、新しいクエリで別のフラグメントを作成する必要がありますか?

(文字列をアクティビティから両方のフラグメントに渡す方法についての簡単なアドバイスはクールです)