問題タブ [mergecursor]
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 - CursorJoiner / MatrixCursor / MergeCursorをいつ使用するのですか?
2つ以上の結合されたテーブルからエレガントにデータを取得するさまざまな方法を模索しています。
MergeCursor
(Android開発者ガイド)は、(たとえば)SQL UNION
2つのクエリを連結する(またはビューを行として個別に追加するなど)ことで同等のものを置き換えることができることを示唆しているようです-したがって、私が望むものではありません。
しかし、私は正確に何のためにあるのか、またはそれらをどのように使用するのかについて途方に暮れていCursorJoiner
ますMatrixCursor
。私はそれらのソースを調べましたが、(いつものように)それは私には何の意味もありません!私が見つけたそれらの使用例は、結果として生じる効果が何であるかを明確に説明していませんでした。それらの良い説明と、それらが使用される可能性のあるコンテキストを本当にいただければ幸いです。
android - MergeCursorとSimpleCursorAdapterを使用して、何が欠けていますか?
私が何をしても、cursor_counterpartyに含まれる列の1つが存在しないというエラーが次のようにスローされます。merge_cursorを確認すると、そこに列があります。これが私のコードです。何が間違っているのでしょうか。
私が得るエラーは次のとおりです。
java.lang.IllegalArgumentException:列'counterparty_name'は存在しません
アプリをデバッグすると、merge_cursorのカーソルの1つに「counterparty_name」という列が表示されます。
どんな助けでも素晴らしいでしょう、ありがとう!
android - cursor.respond(Bundle)とcursor.getextras()を使用する
SQLiteデータベースの異なるテーブルから2つのカーソルがあります。2つのカーソルからのデータを1つに入れようとしていますがListView
、各カーソルからのデータのフォーマットが異なります。
私が考えたのはMergeCursor
、両方のカーソルを結合するためにaを使用することですが、ViewBinder
forSimpleCursorAdapter
はそれらを単一のカーソルとして認識し、フォーマットを区別することはできません(テーブルを変更しない限り、実行したくありません)。
最後に、Cursor.repond(Bundle)
&という2つのメソッドを見つけましCursor.getExtras()
たが、開発者コンソールのドキュメントは非常に短く、これらのメソッドをグーグルで検索しても、その使用法が明確になりませんでした。
resond()
クエリのデータベースクラスで使用するアイデアをテストしました。
そして、を使用getExtras()
しViewBinder
てクエリのテーブルを把握し、ListView
それに応じてアイテムをフォーマットします。
しかし、私は常に例外を取得していtab
ますnull
。
この長い説明の後の私の質問は次のとおりです:私はrespond
とgetExtras
メソッドを正しく使用していますか?そうでない場合、私の問題に対するより良いアプローチはありますか?
android - 2つのデータベーステーブルのデータを1つのlistViewに結合する方法
2つの別々のデータベースクエリを1つのlistViewに結合する方法について私はかなり混乱しています。
現在、私のlistViewには、データベース内の破損したコンポーネントテーブルを照会し、特定の場所の破損したコンポーネントのリストを提供する次のアダプタが入力されています。
これは、アクティビティの開始時に次の電話をかけるとトリガーされます。
したがって、別のテーブル(今回はテーブルを発行)に2番目のクエリを作成し、これを破損したコンポーネントのリストの下のlistViewに追加します。
複数のテーブルからこのリストビューを読んでいますか?、JoinまたはMergeカーソルを使用する必要があると思います。しかし、私が調査したことから、どちらの概念もコードに統合する方法がまだわかりません。
誰かが私を正しい方向に向けることができますか?
android - カーソルの変更後に Android ListView が更新されない
次のコードを使用して、無限の ListView を設定します。ユーザーがリストの最後に到達すると、アプリは非同期タスクを呼び出してさらにアイテムを取得し、ポスト実行時に新しいカーソルが返され、前のものとマージされます。問題は、このコードが ICS と Jelly Bean では機能せず、Froyo と Gingerbread では機能することです。ICS と JellyBean では、リストビューは空になりますが、カーソル サイズをログに記録すると、マージされたカーソルのサイズが得られます。
android - onLoadFinished() 中にカーソルをマージすると、ローテーション後に StaleDataException が発生する
loaderManager を使用して、データベースからいくつかの結果をロードしています。残念ながら、次のコードはデバイスをローテーションした後にStaleDataExceptionを生成します。
getWebSearchesCursor()を呼び出すと、MatrixCursor が返され、返された結果に付随する追加の検索プロンプトが表示されます。adapter.changeCursor(results)をadapter.changeCursor(cursor)に変更するとエラーが修正されることがわかったので、返されたカーソルに MatrixCursor をマージするとエラーが発生するようです。
私の質問は、なぜですか?
結果が返された場合、ユーザーがいくつかの Web サイトで検索を実行できるように、返されたカーソルに項目を追加できるようにしたいと考えています。回転後にこの例外が発生しないように、カーソルをマージするより良い方法はありますか?
android - Android: 既に入力されているカーソルに列を追加します
MergeCursor を使用するか、CursorJoiner を使用するかについて混乱しています。
大量のデータが入ったカーソル (A) があります。カーソル (A) に 100 行、3 列あるとします。私がしたいのは、カーソルに新しい列を挿入 (追加) して、結果のカーソル (B) が 100 行で 4 列になるようにすることです。
現時点では、4 列目に 100 行のデフォルト値を含めたいと考えています。
どうすればいいですか?