問題タブ [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.
android - Android CursorLoader および LoaderManager エラー
最小 API 10 で CursorLoader と LoaderManager を実装しようとしています。
ただし、AsyncTaskLoader.class の 63 行目で IllegalArgument Exception が発生し続けます (例外が発生している AsyncTaskLoader.class のソース コードは以下とこのリンクにあります。
以下は、エラー時のスタックです。
コンテンツ プロバイダーをテストし、クエリ メソッドが Sqlite データベースから有効なカーソルを返すことを確認しました。以下は、CursorLoader と LoaderManager を実装しようとしているアクティビティのソース コードです。
ここで私が間違っていることを誰かが見ていますか?
ありがとう。
アプリはそれを作るようです
そして、そこで例外をスローします。
以下はlogcatです:
android - LoaderManager と java.lang.NullPointerException エラー
私はアンドロイドで断片化を勉強しています、私はこの簡単なプログラムを書きます: このアプリケーションではリストビューを作成したいのですが、バックグラウンドスレッドは作成しません。このスレッドはログファイルに書き込みます
これが主な活動です
これは私のListFragmentです:
ここで activity_main.xml を見ることができます
問題が存在すると思いますが、getLoaderManager
修正方法がわかりません。
編集
アプリケーションを実行すると、logcat に次のように表示されます。
問題はこのコードだと思います
このコードを削除するとすべてうまくいきますが、この状況があるためわかりません。
android - 複数のローダーがローダーマネージャーで使用されている場合、アンドロイドは向きの変更時に正しいローダー状態を維持しません
アプリケーションで 4 つのローダーを使用して、リストビューにデータをロードしています。向きを変更すると、ローダー マネージャーは常に最初のローダーをロードしようとします。この問題を解決するために、アプリケーションの「onResume」でローダーを再起動しています。これで、リストビューにデータが取り込まれましたが、向きが変更される前のリストの位置は維持されません。方向の変更時にローダーの状態を維持する方法はありますか?
search - CursorLoaderはlistViewを更新しませんが、カーソルは正しい結果になります
Android 3.0より前の互換性のあるアプリにsearchViewを実装していて、適切なlistViewの再配置に苦労しています。サポートライブラリに問題があると思います。あるいは、使用できないonQueryTextChangedListenerのEditTextisteaのtextChangeListenerを介したまれな実装でも問題があると思います。何か助けはありますか?
コードは次のとおりです。
android - IllegalStateException - AutocompleteTextView で LoaderManager をサポート
CursorLoaders と Loadermanagers を使用する利点の 1 つは、カーソルのライフサイクルを手動で管理する必要がないことです。そこで、loadermanager を使用して、サポート パッケージを使用してアダプターを AutoCompleteTextView にバインドしました。
「IllegalStateException - すでに閉じられているオブジェクトを再度開いてみてください」というエラーがランダムにスローされることを除けば、非常にうまく機能します。ローダー マネージャーを使用している場合、このようなことは起こらないのではないでしょうか?
コードは次のとおりです。
エラースタックは次のとおりです。
何が間違っている可能性がありますか?
android - ダイナミックローダーを使用して、ListFragmentsなしでViewPagerにListViewページをロードするためのパターン?
特定のページ数のを持っている場合ViewPager
、フレームワークを使用して各ページのデータをロードするための最良の方法は何でしょうLoader
か?各ページには、独自のアダプタインスタンスを持つListViewが含まれています。
- ページごとに個別のローダーを使用します。また
- ロードされていないページをチェックしてロードするシングルローダーを使用する
重要なのは、ユーザーが大量のページをすばやくスワイプしたい場合があるため、パフォーマンス上の理由で不要なページの読み込みを簡単に「キャンセル」できるはずです。
一方で、ローダーが多いとオーバーヘッドが発生する可能性があります。
編集:私Loader
は実際に、ロードしているコンテンツを表すために動的IDを持っている必要があります。おそらくローダーIDにマスクを使用して、ローダーが完了したらを呼び出しますdestroyLoader()
。
android - SimpleCursorAdapterが拡張されたnullPointerException
カスタムプロバイダーとローダーについて学んでいます。GridView
簡単な例として、外部SDカードに保存されている画像を表示するを実装しようとしています。たくさん読んだことがありますが(ドキュメント、SOのスレッド、Googleグループ、フォーラムなど)、コードを機能させることができません。この例にはいくつかの問題が存在する可能性があることは知っていますが、段階的に進めていきたいと思います。コードを停止する最初のエラーはですNullPointerException
ので、私の質問はそれを修正する方法です。
これは私の最小バージョンですActivity
(サポートライブラリv4を使用しています):
そしてこれは私の拡張SimpleCursorAdapter
です:
コードを実行すると、logcatはアダプタNullPointerException
のメソッドにを表示します。getCount()
カーソルがアダプタに渡されていないようです。
更新:
アクティビティでは、次の理由により、カーソル引数としてアダプタコンストラクタにnullを渡します。
- 使用しているので、カーソルへの参照を取得する方法がわかりません
getSupportLoaderManager().initLoader()
- 同じ理由で他のSOスレッドでも同じことが行われ、それらのスレッドでは正常に機能しているようです。
更新:
これはlogcatの出力です
助けていただければ幸いです。TIA
android - 画面の回転後に CursorLoader でデータをロードするときに例外が発生する
Nexus 7 タブレットで実行しているアプリケーションで奇妙な問題が発生しています。カスタム ContentProvider から CursorLoader でデータをロードする 2 つのフラグメントがあります。
アプリケーションを起動すると、横向きモードと縦向きモードの両方で正常に動作し、ローダーはデータを適切にロードします。画面を回転すると問題が発生します。アクティビティと両方のフラグメントが正しく再作成され、期待どおりにローダーが再び開始されます。彼らはデータをロードします(両方のローダーで onLoadFinished が呼び出されることをデバッグしました)が、その後、アプリケーションは次の例外を除いて FC になります。
正直なところ、スタックトレースは私のコードへの参照が含まれていないため役に立ちません。また、上記のように、アプリケーションを初めて起動したときに両方のフラグメントが機能し、電話のレイアウトで適切に機能するため、かなり奇妙な問題です。画面の回転後にタブレットのレイアウトでクラッシュします。
編集:
両方のフラグメントで、単に getLoaderManager.initLoader(....); を呼び出すメソッド onActivityCreated メソッドにデータをロードします。
これは私がローダーを作成した方法です:
最初のフラグメント
2 番目のフラグメント:
これは、私の CP のコンテンツ uri の宣言です。
android - アンドロイドロケーションリスナー
同じリスナーと実装から GPS と NETWORK ロケーション プロバイダーの両方をリッスンしたい
これは大丈夫ですか:
両方のプロバイダーに同じメソッドを使用しますか?
android - Spinner onSelectedItem 呼び出しでの Cursor Loader 自動再クエリ
アクションバー項目としてスピナーを使用しています (スワイプによるタブ ナビゲーションも使用しています)。ローダーを使用してデータをロードする 2 つの listFragments (タブからアクセス) があります。スピナーで別のアイテムを選択するたびに、ローダーが再クエリを実行するようにします (アクティビティ レベルで動作します)。これはフラグメントのローダーの呼び出しの 1 つです。selectedNumber は、スピナー onSelectedItem からフラグメントに渡される文字列です (方法はまだわかりませんが、これは簡単なはずです)。
ローダーに強制的にコンテンツ プロバイダーを再クエリさせる方法はありますか? または、フラグメントをキャンセルして、新しいクエリで別のフラグメントを作成する必要がありますか?
(文字列をアクティビティから両方のフラグメントに渡す方法についての簡単なアドバイスはクールです)