問題タブ [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 - "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 ?
android - CursorLoaderを介してContentProviderのinsert()メソッドを使用してSQLiteデータベースに値を適切に挿入するにはどうすればよいですか?
私はドキュメントを読んでいましたが、それでもよくわかりません。を使用するように指示さgetContentResolver()
れていますが、実際にはCursorLoaderを使用していません。それで、それを実行する方法はありCursorLoader
ますか?私はでそれを行う方法を知っていますquery()
。手順は非常に似ていますか?これを正確に説明するリンクだけでも役に立ちます。
insert()
を使用してContentProviderのメソッドを使用する例がないため、GoogleドキュメントにリンクしないでくださいCursorLoader
。
前もって感謝します!!
編集:私がこれと混同している理由は、newを呼び出すとCursorLoader
自動的にContentProviders
query()
メソッドが呼び出されるためです。しかし、どうすれば挿入に対して同じことができますか?
android - クエリ パラメータは ContentResolver notifyChange に影響しますか
要求が同期アダプターから送信されたときに通知できるようにするクエリパラメーターを使用して、ContentProvider
ネットワークへの同期をトリガーしないようにするなどのことを行うことができます。aを aにaに付けるために aCursorLoader
を使用しています - 基本。提供されているデータベースは同期アダプターを介して更新されるため、通知は同期アダプターが使用する URI (クエリパラメーターが添付されたもの) を使用します。ローダーをリセットする前に同期アダプターを終了させると、適切なデータがに取得されますが、一部のデータがまだ同期されている間にローダーをリセットしようとすると、その時点でデータベースにあったものが取得され、通知されません。データのダウンロードが完了するとリセットされます。LoaderManager
Cursor
CursorAdapter
ListView
ListView
クエリ パラメータが で通知される相手に影響するかどうかについての回答は見つかりませんでした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(...)
android - LoaderManagerを備えたCursorLoaderは、カーソルをCursorAdapterに送信することをどのように認識しますか?
CursorLoader
私は自分のコードのいくつかを調べていましたが、実際には、とLoaderManager
の組み合わせが接続でどのように使用されているのかわからないことに気付きましたCursorAdapter
。これが私が混乱している部分です。
query()
それで、私のカスタムからのメソッドは、ContentProvider
それをその特定のものに送信することをどのように知っていますCursorAdapter
か?接続が表示されません。私はその中の他のすべてを理解していますが、この質問は何ですか。ああ、私が言及する必要があります、コードは正常に動作します。
android - クラス (ListFragment) は LoaderManager.LoaderCallbacks を実装していますが、getLoaderManager().initLoader() は「this」を引数として受け入れません。
Android での SQLite の使用に関するガイドに従うのに問題があります。(例のように) a のListFragment
代わりに aを使用しているので、代わりに実装しています。次に、 のメソッドで:ListActivity
ListFragment
LoaderManager.LoaderCallbacks<Cursor>
fillData()
ListFragment
エラーが発生します:
this
実装しているにもかかわらず、マークされた行にLoaderManager.LoaderCallbacks<Cursor>
。
アイデアをありがとう。
android - 複数の ListFragments を持つ Android SherlockFragmentActivity
いくつかのタブを表示している SherlockFragmentActivity があります。各タブは ListFragment です。
各 ListFragment は次のように作成されます。
次に、各 ListFragments が次のようにロードされます。
前述したように、このアクティビティには ListFragments の形式で複数のタブがあります。私が抱えている問題は、タブをクリックして選択すると、
これは間違っています。データベースを表示するためにadbを使用しましたが、不満を言っている列は100%そこにあるため、カーソルまたは何かを閉じないことと関係がある必要があり、上記が実際に間違ったものをロードしたときにカーソル。
編集: CursorLoader コードの追加
どんな助けでも大歓迎です..
android - 複数のListFragmentsとSQLiteカーソルバトルを伴うSherlockFragmentActivity
3つのタブがあるSherlockFragmentActivityを拡張するアクティビティを使用しています。3つのタブは、LoaderManager.LoaderCallbacksを実装するListFragmentsです。アクティビティのOnCreateメソッドは、次のようにタブをロードします
タブをロードするレイアウトは非常に単純です。
各タブには、これと同じクラスがあり、単に異なるものと呼ばれます。
ここで定義されたSimpleCursorLoadedを使用します。
私が抱えている問題は、say ..を選択すると、2番目のタブ(3番目のタブも同じです)がカーソルを読み込もうとしますが、list_itemsにデータを入力しようとすると、次のようなエラーが発生します。
いくつかのブレークポイントを設定した後、使用しようとしているカーソルが最初のタブのカーソルであることがわかりました。これはインフレで正常に読み込まれましたが、明らかに閉じられておらず、私が( think)getAllVenues()とは異なるカーソルを送信しています
編集:これは、スタックトレースが私に送信する最後の場所です。 いくつかのブレークポイントを設定すると、ここに提供されているカーソルが、[会場]タブではなく、最初のタブからのカーソルであることがわかります。
編集:getAllVenuesメソッドを表示するVenuesDataSourceコード
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
android - ActionbarSherlockを備えたAndroidTabsAdapter
LoaderManager.LoaderCallbacksを実装するSherlockListFragmentでActionbarSherlockを使用しています。
私が使用しているApplicationActivityonCreateメソッドで
レイアウトを設定するには-うまく機能します。
私はそのようにアクションバーを初期化しています
ApplicationActivity内に、最初に開いたときにロードするのに数秒かかるAsyncTaskがあり、APIに対して手動で更新した場合、つまり、上記でインスタンス化されたフラグメントのListViewを更新する必要があります。 onPostExecuteメソッド、これが私がそれを行う方法です:
これはすべて機能します
今、私はTabsAdapterを入れて、私が行った派手なスワイプタブを取得したかったのですが、それは機能しますが、onPostExecuteについて述べた最後の部分は機能しません:(
これは私のTabsAdapterです:
これは、ApplicationActivityから更新されたonCreateメソッドです。
これは、ApplicationActivityのonPostExecuteメソッドに対して行った更新です。
基本的に、onPostExecuteコードを実行しようとしたとき
フラグメント内のcursorAdapterからNullPointerExceptionが発生しますが、フラグメントが見つかりました。
編集-要求されたコード
android - LoaderManagerを使用した複数のローダー、適切なローダーが取得されない
2つのローダーがあります。1つはバインドされた戻りデータを2TextViews
に入力し、もう1つはを入力しListView
ます。状況ごとに正しいローダーがロードされることを確認するにはどうすればよいですか?最初のローダー(WR_VIEW
ケース)が作成またはロードされていないように見える場所でエラーが発生してonLoadFinished()
いるため、その列を呼び出さない2番目のローダーにアクセスしているため、「そのような列が見つかりませんエラー」が返されます。
ここで私のonCreate
方法では、リストビュー用のアダプタを設定しました。
私の2つの異なるを作成しますCursorLoader
:
TextViews
私のここと:swapCursor
のためにデータをバインドしますListView
ローダーのリセット: