問題タブ [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 投票する
3 に答える
27714 参照

android - 複数のローダーを持つ LoaderManager: 正しいカーソルローダーを取得する方法

複数のローダーがある場合に正しいカーソルを取得する方法は明確ではありません。次のように 2 つの異なるローダーを定義するとします。

次にonCreateLoader()で、ID に応じてさまざまなことを行います。

ここまでは順調ですね。ただし、正しい Cursoradapter の正しい Cursor を識別するための ID を取得できないため、 onLoadFinished()で正しいカーソルを取得する方法。

または私は間違っていますか?これは、1 つのフラグメントで 2 つの異なるカーソルアダプターの結果を取得する間違った方法です。

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

android - ListAdapter または SimpleCursorAdapter からリストビューに入力します

私は、基本的に私たちのウェブサイトで利用可能なデータをミラーリングする新しい Android アプリを作成しています。GUI にはListView、各項目に画像とテキストを含む 、またはRelativeLayout1 つの項目の詳細を表示する が表示されます。

このアプリの応答性を高めるために、データが十分に新しい場合は内部 DB からデータを読み取り、内部データが古すぎる場合はサーバーの API (JSON over http) からデータを読み取ります (そして、新しいデータを含む内部 DB)。

基本的なチュートリアルから、内部 DB から読み取る場合は DB とSimpleCursorAdapter(*) を使用する必要があるようです。ArrayListしかし、ウェブから読むときは、 andを使用していると思いますArrayAdapter

両方の状況を処理できるアダプターのタイプはありますか?

(*) CursorLoader で LoaderManager を使用することが最新の方法であることはわかっていますが、Android 2.1 をサポートしようとしています。SimpleCursorAdapter を AsyncTask に入れて ANR を回避できると思います。

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

android - どのCursorAdapterを使用する必要がありますか?

CursorAdapterには3つのコンストラクターがあります。ガイドとリファレンスを見てみましょう。

1)CursorAdapter(コンテキストコンテキスト、カーソルc)

このコンストラクタは非推奨です。このオプションは、アプリケーションのUIスレッドでカーソルクエリが実行される結果となり、応答性が低下したり、アプリケーションが応答しないエラーが発生したりする可能性があるため、お勧めしません。別の方法として、CursorLoaderでLoaderManagerを使用します。

2)CursorAdapter(コンテキストコンテキスト、カーソルc、ブール値のautoRequery)

自動再クエリの制御を可能にするコンストラクター。これを使用せず、代わりにCursorAdapter(Context、Cursor、int)を使用することをお勧めします。

3)CursorAdapter(コンテキストコンテキスト、カーソルc、intフラグ)

推奨されるコンストラクター。

フラグ アダプタの動作を決定するために使用されるフラグ。FLAG_AUTO_REQUERYとFLAG_REGISTER_CONTENT_OBSERVERの任意の組み合わせにすることができます。

FLAG_AUTO_REQUERY この定数は非推奨です。このオプションは、アプリケーションのUIスレッドでカーソルクエリが実行される結果となり、応答性が低下したり、アプリケーションが応答しないエラーが発生したりする可能性があるため、お勧めしません。別の方法として、CursorLoaderでLoaderManagerを使用します。

FLAG_REGISTER_CONTENT_OBSERVER。CursorLoaderでCursorAdapterを使用する場合、このフラグは必要ありません。

CursorAdapter(Context context、Cursor c、int flags)が推奨されるコンストラクターですが、カーソルローダーでCursorAdapterを使用する場合、可能なフラグは2であり、1つは非推奨であり、もう1つは必要ありません。CursorLoaderでCursorAdapterを使用する場合、このコンストラクターを使用して、フラグとしてゼロを渡す必要がありますか?そしてこの場合、コンストラクターは#1と同じ非推奨ですか?

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

android - チャットアプリケーションのチャットをロードするAndroid db

チャット アプリケーションを作成していて、少しガイダンスが必要です。入ってくるチャットを保存するためにsqliteデータベースを使用しています。アクティビティが開いているときに、その特定のチャットからチャット履歴をロードし、新しいチャットが入力されると更新を続けるようにします(私の主な質問は、どのように行うかです私はこれをやっています)。

その会話のチャットを含むクエリの初期カーソルで CursorAdapter を使用し、ListView のアダプターとして設定する必要がありますか? これを試しましたが、データベースに挿入してもデータが更新されません。

コードを提供していないことは承知していますが、これを行う最善の方法についての一般的な会話は大歓迎です。ありがとう!

Android 2.3.3(API 10)以降(CursorLoaderと、API 11までは利用できないものすべてについて少し読んだ)で動作するためにこれが必要であることにも言及させてください。私ができるもう1つのことは、ArrayAdapterを使用してチャットを直接追加し(アクティビティが開いている場合)、そうでない場合はデータベースに挿入し、onResume()でArrayAdapterをクリアしてすべての会話を照会することです一度、それぞれを読んでください。これが最適な方法でしょうか?

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

android - LoaderManager のスコープは何ですか?

ローダーを使用して Android アプリケーションを作成する場合、すべてのアクティビティとフラグメントに独自のLoaderManager. それともLoaderManager、アプリケーションが所有するものは 1 つだけにする必要がありますか? 最後に、特定の s を識別するために使用される「一意の ID」LoaderManagerは、クラスの外部に表示されますか?

具体的には、アプリケーション内のどのクラスがLoaderCallback<Cursor>メソッドを実装する必要があるかを判断するのに苦労しています (つまり、各フラグメントでこれらのコールバックを実装する必要があるか、または 1 つのフラグメントでコールバックを実装して結果をクエリし、必要に応じて他のフラグメント/アクティビティに送信する必要があります)。 ?

私を助けてくれる人に前もって感謝します!これについては、オンラインであまり多くの情報を見つけることができませんでした。

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

android - Service から LoaderManager を使用できますか?

アクティビティとフラグメントからうまく機能するカスタム ローダーとカーソルを使用してデータ ロード システムをセットアップしましたが、Service に LoaderManager (私が見つけたもの) がありません。LoaderManager が Service から除外された理由を知っている人はいますか? そうでない場合、これを回避する方法はありますか?

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

android - CursorLoaderを使用して、個々のデータベースレコードを1つずつ表示するにはどうすればよいですか。

ContentProvider質問と対応する回答を含む各レコードでを作成しようとしています。そして、各質問と回答のTextViewを表示するアクティビティと、それらのTextViewの下にある[次へ]ボタン。[次へ]ボタンをクリックすると、次の質問と回答が表示されます。

onStop()CursorLoaderはデータをとに保持するため、CursorLoaderとLoaderManagerを使用しようとしています。またonStart()、とについて学習しようとしていCursorLoadersますLoaderManagers

私が見つけた例はすべて使用setListAdapter()していますが、私のアクティビティをリストのように見せたくありません。SimpleCursorAdapterを使用bindView()してmain.xmlレイアウトを使用することで、これを回避しようとしました。それがうまくいくかどうかはわかりません。

プレーンカーソルがある場合はを使用しますmoveToNext()が、その場合は新しいクエリを使用する必要があるLoaderManagerようです。restartLoader()新しいクエリを作成するには、カーソルを使って次のレコードに移動するよりも時間がかかると思います。特に、現在または次のレコードの位置を知る必要があるためです。

だから私の質問は:次のレコードのために新しいクエリを作成することなく、CursorLoaderとを使用LoaderManagerしてデータベースを調べ、レコードごとに記録することはできますか?それともCursorLoadersLoaderManagers本当にListViews専用ですか?

これまでの私のコードは次のとおりです。それほど多くはないことに気付きましたが、ローダーとロードマネージャーでAndroidのページを読んだり読み直したりしました。

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

android - アクティビティまたはフラグメントには、実行されるデータベース操作のタイプごとに個別のローダーが必要ですか?

フラグメントまたはアクティビティがsqliteデータベースと対話するためのGoogle推奨の方法(Androidサポートライブラリを使用)は、AsyncTaskLoaderを拡張するローダーを介して行われ、CursorLoaderがContentProviderに対して行う方法と同様に機能するようです。

単一のアクティビティまたはフラグメントは、1つ以上のテーブルのデータを更新、削除、およびクエリするなど、さまざまな方法でデータベースと対話できます。しかし、ローダーにはデータベース操作を実行する場所が1つしかないため(つまり、でloadInBackground())、開発者は、対話のタイプごとに個別のローダーを作成する必要があります。特に、での動作をパラメーター化する唯一の方法loadInBackground()は、? へのargs引数を介したローダーのコンストラクターへの引数LoaderManager.initLoader()

どうもありがとう。

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

java - Android アプリケーションのすべてのアクティビティで SQLiteOpenHelper の 1 つのインスタンスを共有しても問題ありませんか?

サブクラス化されたアプリケーションのメンバーとして SQLiteOpenHelper の単一のインスタンスを持ち、SQLiteDatabase のインスタンスを必要とするすべてのアクティビティが 1 つのヘルパーからそれを取得することは問題ないでしょうか?

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

java - managedQuery から LoaderManager/CursorLoader に移行するにはどうすればよいですか?

API レベル 8 (2.2、Froyo) を対象とする Android アプリケーションを開発しています。私は a を使用してContentProviderおり、それは十分に単純でありSimpleCursorAdapter、リスト ビューに入力するために使用していますが、SimpleCursorAdapterのドキュメントで、フラグのないコンストラクターが次の注記で非推奨になっていることに気付きました。

このコンストラクターは非推奨です。このオプションは、アプリケーションの UI スレッドでカーソル クエリが実行され、応答性が低下したり、アプリケーションが応答しないというエラーが発生したりする可能性があるため、推奨されません。別の方法として、LoaderManager を CursorLoader とともに使用します。

API レベル 8 をターゲットにしているため、 aLoaderManagerは に関連付けられていませんActivity。互換性パッケージのFragmentActivityクラスはこれを行いますが、フラグメントは使用していません。

私の質問はLoaderManager/CursorLoader、11 より前の API レベルを対象とするアプリでどのように使用すればよいですか? SimpleCursorAdapterFragments に強制的に移行する必要がありますか、それとも非推奨のコンストラクターに戻す必要がありますか (ただしAsyncTask、UI スレッドに適した状態に保つために を使用します。これは、CursorLoaderが行うべきことです)。