問題タブ [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 に答える
1635 参照

android - "No such column found" with multiple Loader in LoaderManager and MediaStore

From the title of a music, a try toget the corresponding Artist, ALbum's name and Album's Cover. I use LoaderManager and CursorLoader. When the Activity is created I lunch the loader with getLoaderManager().initLoader(1, null, this). Here is the code of my loader:

On Create Loader

On Load Finish

The variable album is defined for the whole class and dataalbumsTrackRequested is a String equal to the title of the album desired.

The app crashes and I get :

If I remove the second Loader (with Id=2), then of course the cover is not display, but the app doesn't crash. So the problem comes from the second Loader.

What am I doing wrong ? I'm sure the colomn album_art exist as I've already achieved to get the cover like this in one of my other app. But here, I can't find where the bug comes from. Is it because I use multiple Loaders ?

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

android - CursorLoaderを介してContentProviderのinsert()メソッドを使用してSQLiteデータベースに値を適切に挿入するにはどうすればよいですか?

私はドキュメントを読んでいましたが、それでもよくわかりません。を使用するように指示さgetContentResolver()れていますが、実際にはCursorLoaderを使用していません。それで、それを実行する方法はありCursorLoaderますか?私はでそれを行う方法を知っていますquery()。手順は非常に似ていますか?これを正確に説明するリンクだけでも役に立ちます。

insert()を使用してContentProviderのメソッドを使用する例がないため、GoogleドキュメントにリンクしないでくださいCursorLoader

前もって感謝します!!

編集:私がこれと混同している理由は、newを呼び出すとCursorLoader自動的にContentProviders query()メソッドが呼び出されるためです。しかし、どうすれば挿入に対して同じことができますか?

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

android - クエリ パラメータは ContentResolver notifyChange に影響しますか

要求が同期アダプターから送信されたときに通知できるようにするクエリパラメーターを使用して、ContentProviderネットワークへの同期をトリガーしないようにするなどのことを行うことができます。aを aにaに付けるために aCursorLoaderを使用しています - 基本。提供されているデータベースは同期アダプターを介して更新されるため、通知は同期アダプターが使用する URI (クエリパラメーターが添付されたもの) を使用します。ローダーをリセットする前に同期アダプターを終了させると、適切なデータがに取得されますが、一部のデータがまだ同期されている間にローダーをリセットしようとすると、その時点でデータベースにあったものが取得され、通知されません。データのダウンロードが完了するとリセットされます。LoaderManagerCursorCursorAdapterListViewListView

クエリ パラメータが で通知される相手に影響するかどうかについての回答は見つかりませんでしたContentResolver.notifyChange(Uri, ContentObserver, boolean)。だから私はこの問題に取り組もうとしていますが、私が理解する前に誰かがその質問に答えることができれば、それは大歓迎です. 明確にするために、リクエスターが の同期アダプターではなかったときに、 myContentProviderを呼び出しています。そして、リクエストをトリガーした URI を使用して、リクエスタが Sync Adapter である場合に呼び出します。cursor.setNotificationUri(getContext().getContentResolver(), uri)ContentProvider.query(...)getContext().getContentResolver().notifyChange(uri, null, false)ContentProvider.insert/update/delete/bulkInsert(...)

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

android - LoaderManagerを備えたCursorLoaderは、カーソルをCursorAdapterに送信することをどのように認識しますか?

CursorLoader私は自分のコードのいくつかを調べていましたが、実際には、とLoaderManagerの組み合わせが接続でどのように使用されているのかわからないことに気付きましたCursorAdapter。これが私が混乱している部分です。

query()それで、私のカスタムからのメソッドは、ContentProviderそれをその特定のものに送信することをどのように知っていますCursorAdapterか?接続が表示されません。私はその中の他のすべてを理解していますが、この質問は何ですか。ああ、私が言及する必要があります、コードは正常に動作します。

0 投票する
19 に答える
52230 参照

android - クラス (ListFragment) は LoaderManager.LoaderCallbacks を実装していますが、getLoaderManager().initLoader() は「this」を引数として受け入れません。

Android での SQLite の使用に関するガイドに従うのに問題があります。(例のように) a のListFragment代わりに aを使用しているので、代わりに実装しています。次に、 のメソッドで:ListActivityListFragmentLoaderManager.LoaderCallbacks<Cursor>fillData()ListFragment

エラーが発生します:

this実装しているにもかかわらず、マークされた行にLoaderManager.LoaderCallbacks<Cursor>

アイデアをありがとう。

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

android - 複数の ListFragments を持つ Android SherlockFragmentActivity

いくつかのタブを表示している SherlockFragmentActivity があります。各タブは ListFragment です。

各 ListFragment は次のように作成されます。

次に、各 ListFragments が次のようにロードされます。

前述したように、このアクティビティには ListFragments の形式で複数のタブがあります。私が抱えている問題は、タブをクリックして選択すると、

これは間違っています。データベースを表示するためにadbを使用しましたが、不満を言っている列は100%そこにあるため、カーソルまたは何かを閉じないことと関係がある必要があり、上記が実際に間違ったものをロードしたときにカーソル。

編集: CursorLoader コードの追加

どんな助けでも大歓迎です..

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

android - 複数のListFragmentsとSQLiteカーソルバトルを伴うSherlockFragmentActivity

3つのタブがあるSherlockFragmentActivityを拡張するアクティビティを使用しています。3つのタブは、LoaderManager.LoaderCallbacksを実装するListFragmentsです。アクティビティのOnCreateメソッドは、次のようにタブをロードします

タブをロードするレイアウトは非常に単純です。

各タブには、これと同じクラスがあり、単に異なるものと呼ばれます。

ここで定義されたSimpleCursorLoadedを使用します。

私が抱えている問題は、say ..を選択すると、2番目のタブ(3番目のタブも同じです)がカーソルを読み込もうとしますが、list_itemsにデータを入力しようとすると、次のようなエラーが発生します。

いくつかのブレークポイントを設定した後、使用しようとしているカーソルが最初のタブのカーソルであることがわかりました。これはインフレで正常に読み込まれましたが、明らかに閉じられておらず、私が( think)getAllVenues()とは異なるカーソルを送信しています

編集:これは、スタックトレースが私に送信する最後の場所です。 いくつかのブレークポイントを設定すると、ここに提供されているカーソルが、[会場]タブではなく、最初のタブからのカーソルであることがわかります。

ここに画像の説明を入力してください

編集:getAllVenuesメソッドを表示するVenuesDataSourceコード

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

android - AndroidはImageDownloadをCursorLoaderと組み合わせる

私はImageDownloaderで非常に単純なCursorLoaderを使用しています。ImageDownloaderが実行され、CursorLoader以外のすべてが終了し、ImageDownloaderが画像のダウンロードを開始しますが、GridViewはダウンロードされた画像で更新されません。

ListFragment内に、次のonActivityCreatedメソッドがあります。

私のCursorLoaderは次のとおりです。

すべての写真を取得する#STEP 1というラベルの付いた行は、次のように、カーソルを取得するメソッドにすぎません。

したがって、これはListFragmentのCursorLoaderであり、そのカーソルが返されるときに完全であると見なされます。これは正しいことです。私の理解では、setAdapter()メソッドは、実際にgetViewメソッドをトリガーするものです

私が抱えている問題は、すべてが正常に実行されているように見えることです。ログ出力は画像のURLを正しく出力し、ブレークポイントはすべて正当なデータを示していますが、問題は、グリッドビューが画像で更新されないことです。 ImageDownloaderが取得します。

編集 これはSimpleCursorLoader私が使用しているものです:https ://gist.github.com/1217628

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

android - ActionbarSherlockを備えたAndroidTabsAdapter

LoaderManager.LoaderCallbacksを実装するSherlockListFragmentでActionbarSherlockを使用しています。

私が使用しているApplicationActivityonCreateメソッドで

レイアウトを設定するには-うまく機能します。

私はそのようにアクションバーを初期化しています

ApplicationActivity内に、最初に開いたときにロードするのに数秒かかるAsyncTaskがあり、APIに対して手動で更新した場合、つまり、上記でインスタンス化されたフラグメントのListViewを更新する必要があります。 onPostExecuteメソッド、これが私がそれを行う方法です:

これはすべて機能します

今、私はTabsAdapterを入れて、私が行った派手なスワイプタブを取得したかったのですが、それは機能しますが、onPostExecuteについて述べた最後の部分は機能しません:(

これは私のTabsAdapterです:

これは、ApplicationActivityから更新されたonCreateメソッドです。

これは、ApplicationActivityのonPostExecuteメソッドに対して行った更新です。

基本的に、onPostExecuteコードを実行しようとしたとき

フラグメント内のcursorAdapterからNullPointerExceptionが発生しますが、フラグメントが見つかりました。

ここに画像の説明を入力してください

編集-要求されたコード

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

android - LoaderManagerを使用した複数のローダー、適切なローダーが取得されない

2つのローダーがあります。1つはバインドされた戻りデータを2TextViewsに入力し、もう1つはを入力しListViewます。状況ごとに正しいローダーがロードされることを確認するにはどうすればよいですか?最初のローダー(WR_VIEWケース)が作成またはロードされていないように見える場所でエラーが発生してonLoadFinished()いるため、その列を呼び出さない2番目のローダーにアクセスしているため、「そのような列が見つかりませんエラー」が返されます。

ここで私のonCreate方法では、リストビュー用のアダプタを設定しました。

私の2つの異なるを作成しますCursorLoader

TextViews私のここと:swapCursorのためにデータをバインドしますListView

ローダーのリセット: