問題タブ [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 - ホルダーパターンを持つSimpleCursorAdapterでListFragmentを使用する
ListFragment
fromを実装ViewPager
し、ListAdapter
拡張を使用して、カスタムカーソルとJARSimpleCursorAdapter
を使用するように変換する前に使用していたのと同じホルダーパターンを維持しようとしています。をホスティングするのではなく、に配置したことを除いて、すべてがうまく調和しているようです。主に、からリスト内のデータをロード/更新するために必要なコールバックについて確信が持てず、フォーム全体にのすべてのフラグメントにまたがる多くのフィールドがあるため、メモリに巨大なカーソルがないようにしたかったためです。フォームの各セクションで独自のローダーで独自のデータを管理しても問題ないようです。LoaderManager
CommonsWare.loaderex
LoaderManager
ListFragment
FragmentActivity
ViewPager
FragmentActivity
ViewPager
デモプロジェクトと同様のAdapterInitセットアップをビルドすると(以下のコードスニペットを参照)
エラーとしてのgetSupportLoaderManager()
フラグと私は理由を理解することはできません。これがフラグメントの完全なコードです(私はそれが不完全な電話番号マネージャーであることを知っています)。私が間違ったことについてのガイダンスは素晴らしいでしょう。
android - CursorLoader を使用して SQLite DB をクエリし、AutoCompleteTextView に入力する
クエリを実行したい SQLite データベースがあります。ICS を介して Android 2.2 をターゲットにしたいと考えています。これを行う方法についてこの記事に出くわしましたが、非推奨のコードを使用しています (非同期ではなく、UI スレッドでクエリを実行します)。CursorLoader
それ以来、このタスクを推奨されるベスト プラクティスの方法で実行できることを読んだことがLoaderManager
あります (UI スレッドを停止させないため)。
問題は、これを行う方法を説明する簡潔な例を見つけることです。1) データベースをロードし、2) クエリを実行し、3) 結果を使用して AutoCompletetextBox リスト ビューに入力します。
そのような例は存在しますか?
android - アクティビティでのローダーの初期化
現在、ローダーの使用方法を学習しようとしていますが、アクティビティでローダーを開始する際に問題が発生しています。
ただし、Eclipse では次のエラーが表示されます。
タイプ LoaderManager のメソッド initLoader(int, Bundle, LoaderManager.LoaderCallbacks) は、引数 (int、null、ActivitySwitchActivity) には適用されません。
私が間違っているところを誰か助けてもらえますか?
android - ActionBarSherlock + マップ + ローダー = java.lang.NoClassDefFoundError
編集:詳細なハウツーについては、私の答えをチェックしてください。
私は今2日間苦労しています。誰かが助けてくれることを願っています。
MapView で最新の ActionBarSherlock (4.0) を使用しようとしています。フラグメントに問題があることはわかっていましたが、このアクティビティではフラグメントは必要ありません。しかし、ローダーが必要であり、ローダーを使用するには FragmentActivity も拡張する必要があるようです。問題ありません。Pete Doyle のandroid-support-v4-googlemapsがあると思いました。多くの SO スレッドと Google グループで提案されているように、android-support-v4.jar の代わりに android-support-v4-googlemaps JAR (実際には android-support-v13-r7-googlemaps.jar) を使用して ABS を構築します。その後、プロジェクトのライブラリとして使用しました。
今、私は自分の活動をこのようにしたいと思います:
public class BananoutMapActivity extends SherlockFragmentActivity implements LoaderCallbacks<ArrayList<EventItem>>{
問題:
コンパイルされますが、実行時エラーがスローされます。E/AndroidRuntime(29159): java.lang.NoClassDefFoundError: ndl.klimczak.bananout.BananoutMapActivity
私がトリプルチェックしたこと:
- ActionBarSherlock ライブラリ プロジェクトと私のプロジェクトの両方が Google API 4.0.3 を対象としています
- 私は
<uses-library android:name="com.google.android.maps" />
それをアプリケーションタグに持っています。 - プロジェクトのビルドパスにも同じ android-support-v13-r7-googlemaps.jar があります
- マニフェストで
.BananoutMapActivity
宣言しました
興味深い点:
ICS エミュレーターで実行すると動作します (2.* エミュレーターと 2.3.7 デバイスでエラーが表示されます)。
パーツを削除して
implements LoaderCallbacks<ArrayList<EventItem>>
も機能しますが、この方法では LoaderManager を使用できません
いったいなぜ NoClassDefFoundError エラーが発生し、ローダーを MapCapableSherlockEnabledFragmentActivity で動作させるにはどうすればよいでしょうか?
android - 複数のアクティビティ/フラグメントで再利用するためのグローバルローダー(LoaderManager)
私が達成したいこと:
2つの異なるフラグメントがあります。両方に同じデータを2つの形式(リストとマップ)で表示してほしい。AsyncTaskLoader
(特に)1つのローダーを共有してほしい。すべて正常に動作しますが、ローダーは再利用されません。もう1つ作成され、データが2回ロードされます。
私がやること:
Fragment
私が使用するのはLoaderManager lm = getActivity().getSupportLoaderManager();
、両方で実装LoaderCallbacks<ArrayList<Item>>
し、必要なメソッドです。両方で私は使用しますlm.initLoader(0, args, this);
。
しかし、出力するlm.toString()
と、これらは2つの異なるローダーであるように見えます。そして、データは2回ダウンロードされます。
開始されたものとは異なるアクティビティ/フラグメントから同じローダーに再接続するにはどうすればよいですか?
onCreate()
コンテキストは、構成の変更など、とにかくローダーにアタッチされるため、可能であるはずです。
android - ICS の SimpleCursorAdapter
プロジェクトに SimpleCursorAdapter が必要です。このためのコードを 2.3 バージョンで作成しました。しかし、これをICSに追加できませんでした。はSimpleCursorAdapter(context, layout, c, from, to)
非推奨であり、新しいものはSimpleCursorAdapter(context, layout, c, from, to, flags)
.
これには、新しいパラメータ「flags」が含まれています。フラグの代わりに何を追加すればよいですか? これは何を示していますか?
android - LoaderManager によって管理されるカスタム アダプターを使用した AlphabetIndexer
AlphabetIndexer
このようなカスタムアダプターで実装しようとしています
カスタム アダプターを使用した AlphabetIndexer
私のクラス ContactsCursorAdapter は拡張SimpleCursorAdapter
および実装されており、アダプターのカーソルを管理するためSectionIndexer
に を使用しているため、上記の例に対する2番目の回答が示すようにメソッド LoaderManager
をオーバーライドしました。swapCursor()
ただし、リストビューを fastScrollEnabled = true に設定すると、これはエラーになります
getListView().setFastScrollEnabled(true);
ListFragment
LoaderManager.LoaderCallbacksを拡張および実装する私のクラス ContactsCursorLoaderListFragment で。
スタック トレースは次のとおりです。
setFastScrollEnabled()
メソッドが呼び出された後、getSections()
クラッシュする場所であるカスタムアダプターのメソッドを呼び出します。
また、呼び出しにコメントするsetFastScrollEnabled()
と、エラーは発生しませんが、動作はわかりませんAlphabetIndexer
。
ListFragment
カスタム アダプタがではなく に設定されているため、これを別の方法で実装する必要がありListActivity
ますか?
これをすべて機能させる方法について誰か提案がありますか?
java - initLoader() を呼び出した後、ローダーが起動しませんか?
フラグメントがあり、ボタンがクリックされたときにローダーを開始したい:
ボタンをクリックすると、コールバックの onCreateLoader メソッドが呼び出されているのがわかりますが、作成されたローダーは実際には起動しません。実際に起動するには、ローダー自体で forceLoad() を呼び出す必要がありますか? これを行うサンプル投稿はありません。
ありがとう
android - マルチスレッドのAndroidsqlite
を使用してAndroidアプリケーションを作成していsqlite
ます。多くの活動と1つのサービスがあります。複数のスレッドからDBを使用しています。で完全に機能しAndroid 2.X
ますが、実行するAndroid 3.X
と常にこのエラーがスローされ、Force Close
:
なぜそれが起こるのか、そしてそれをどのように解決するのか誰もが知っていますか?
私はインターネットで調査しました、そしてほとんどの人はアドバイスします:
- アプリケーションにのみ1つのDB接続を使用します。それを確実にする方法は?サービスとアクティビティの両方でDB接続を共有したいと思います。パブリック静的DB変数を作成することでそれを行う必要がありますか?
- ContentProvider-コードで複雑なSQLステートメントを使用しています(いくつかのテーブルの結合、一時テーブルなど)。これらの複雑なSQLステートメントをContentProviderで実行することは可能ですか?
みんなありがとう。最後に、(1)は私にとってはうまくいきます。しかし、Android2.Xにこの問題がないのはなぜだろうと思います。
java - SimpleAdapterCursor swapCursor() によるカーソルの交換
アプリケーションにコンテンツ プロバイダーを設定し、LoaderManager を使用してデータをロードしましたが、カーソルをカーソル アダプターに交換する際に問題が発生しました。問題を追跡し、それad.swapCursor(cursor);
が問題のようです。
ここで私が間違っていると思いますか?それはコンテンツプロバイダーである可能性がありますか?
ありがとう