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

android - ホルダーパターンを持つSimpleCursorAdapterでListFragmentを使用する

ListFragmentfromを実装ViewPagerし、ListAdapter拡張を使用して、カスタムカーソルとJARSimpleCursorAdapterを使用するように変換する前に使用していたのと同じホルダーパターンを維持しようとしています。をホスティングするのではなく、に配置したことを除いて、すべてがうまく調和しているようです。主に、からリスト内のデータをロード/更新するために必要なコールバックについて確信が持てず、フォーム全体にのすべてのフラグメントにまたがる多くのフィールドがあるため、メモリに巨大なカーソルがないようにしたかったためです。フォームの各セクションで独自のローダーで独自のデータを管理しても問題ないようです。LoaderManagerCommonsWare.loaderexLoaderManagerListFragmentFragmentActivityViewPagerFragmentActivityViewPager
デモプロジェクトと同様のAdapterInitセットアップをビルドすると(以下のコードスニペットを参照)

エラーとしてのgetSupportLoaderManager()フラグと私は理由を理解することはできません。これがフラグメントの完全なコードです(私はそれが不完全な電話番号マネージャーであることを知っています)。私が間違ったことについてのガイダンスは素晴らしいでしょう。

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

android - CursorLoader を使用して SQLite DB をクエリし、AutoCompleteTextView に入力する

クエリを実行したい SQLite データベースがあります。ICS を介して Android 2.2 をターゲットにしたいと考えています。これを行う方法についてこの記事に出くわしましたが、非推奨のコードを使用しています (非同期ではなく、UI スレッドでクエリを実行します)。CursorLoaderそれ以来、このタスクを推奨されるベスト プラクティスの方法で実行できることを読んだことがLoaderManagerあります (UI スレッドを停止させないため)。

問題は、これを行う方法を説明する簡潔な例を見つけることです。1) データベースをロードし、2) クエリを実行し、3) 結果を使用して AutoCompletetextBox リスト ビューに入力します。

そのような例は存在しますか?

0 投票する
4 に答える
26614 参照

android - アクティビティでのローダーの初期化

現在、ローダーの使用方法を学習しようとしていますが、アクティビティでローダーを開始する際に問題が発生しています。

ただし、Eclipse では次のエラーが表示されます。

タイプ LoaderManager のメソッド initLoader(int, Bundle, LoaderManager.LoaderCallbacks) は、引数 (int、null、ActivitySwitchActivity) には適用されません。

私が間違っているところを誰か助けてもらえますか?

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

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 で動作させるにはどうすればよいでしょうか?

0 投票する
4 に答える
7826 参照

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()コンテキストは、構成の変更など、とにかくローダーにアタッチされるため、可能であるはずです。

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

android - ICS の SimpleCursorAdapter

プロジェクトに SimpleCursorAdapter が必要です。このためのコードを 2.3 バージョンで作成しました。しかし、これをICSに追加できませんでした。はSimpleCursorAdapter(context, layout, c, from, to)非推奨であり、新しいものはSimpleCursorAdapter(context, layout, c, from, to, flags).

これには、新しいパラメータ「flags」が含まれています。フラグの代わりに何を追加すればよいですか? これは何を示していますか?

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

android - LoaderManager によって管理されるカスタム アダプターを使用した AlphabetIndexer

AlphabetIndexerこのようなカスタムアダプターで実装しようとしています

カスタム アダプターを使用した AlphabetIndexer

私のクラス ContactsCursorAdapter は拡張SimpleCursorAdapterおよび実装されており、アダプターのカーソルを管理するためSectionIndexer に を使用しているため、上記の例に対する2番目の回答が示すようにメソッド LoaderManagerをオーバーライドしました。swapCursor()

ただし、リストビューを fastScrollEnabled = true に設定すると、これはエラーになります

getListView().setFastScrollEnabled(true);

ListFragmentLoaderManager.LoaderCallbacksを拡張および実装する私のクラス ContactsCursorLoaderListFragment で。

スタック トレースは次のとおりです。

setFastScrollEnabled()メソッドが呼び出された後、getSections()クラッシュする場所であるカスタムアダプターのメソッドを呼び出します。

また、呼び出しにコメントするsetFastScrollEnabled()と、エラーは発生しませんが、動作はわかりませんAlphabetIndexer

ListFragmentカスタム アダプタがではなく に設定されているため、これを別の方法で実装する必要がありListActivityますか?

これをすべて機能させる方法について誰か提案がありますか?

0 投票する
5 に答える
11722 参照

java - initLoader() を呼び出した後、ローダーが起動しませんか?

フラグメントがあり、ボタンがクリックされたときにローダーを開始したい:

ボタンをクリックすると、コールバックの onCreateLoader メソッドが呼び出されているのがわかりますが、作成されたローダーは実際には起動しません。実際に起動するには、ローダー自体で forceLoad() を呼び出す必要がありますか? これを行うサンプル投稿はありません。

ありがとう

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

android - マルチスレッドのAndroidsqlite

を使用してAndroidアプリケーションを作成していsqliteます。多くの活動と1つのサービスがあります。複数のスレッドからDBを使用しています。で完全に機能しAndroid 2.Xますが、実行するAndroid 3.Xと常にこのエラーがスローされ、Force Close

なぜそれが起こるのか、そしてそれをどのように解決するのか誰もが知っていますか?

私はインターネットで調査しました、そしてほとんどの人はアドバイスします:

  1. アプリケーションにのみ1つのDB接続を使用します。それを確実にする方法は?サービスとアクティビティの両方でDB接続を共有したいと思います。パブリック静的DB変数を作成することでそれを行う必要がありますか?
  2. ContentProvider-コードで複雑なSQLステートメントを使用しています(いくつかのテーブルの結合、一時テーブルなど)。これらの複雑なSQLステートメントをContentProviderで実行することは可能ですか?


    みんなありがとう。最後に、(1)は私にとってはうまくいきます。しかし、Android2.Xにこの問題がないのはなぜだろうと思います。
0 投票する
1 に答える
3565 参照

java - SimpleAdapterCursor swapCursor() によるカーソルの交換

アプリケーションにコンテンツ プロバイダーを設定し、LoaderManager を使用してデータをロードしましたが、カーソルをカーソル アダプターに交換する際に問題が発生しました。問題を追跡し、それad.swapCursor(cursor);が問題のようです。

ここで私が間違っていると思いますか?それはコンテンツプロバイダーである可能性がありますか?

ありがとう