問題タブ [matrixcursor]
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.
java - テキストと画像を含む ListView で MatrixCursor と SimpleCursorAdapter を使用する
MatrixCursor
を使用してを入力する際に問題が発生していますListView
:
を構築するSimpleCursorAdapter
と、クラッシュが発生します。アイコンを削除しようとしても、アプリはクラッシュしました。これが私のものmenu_row.xml
です:
編集:クラッシュ時のコールスタックは次のとおりです。
解決:
私は問題を見つけました。解決策は以下の回答にあります。
java - コンテンツ プロバイダーを介してバイナリ BLOB を渡す
私の一連の Android アプリケーションに合わせてカスタマイズされたコンテンツ プロバイダーがあり、公開する必要があるものの 1 つは小さな (20 ~ 30 KiB) バイト配列です。これらの BLOB の URI は次のようになります。
#
は行番号です。結果のカーソルには、標準_id
列とデータ列があります。MatrixCursor
プロバイダーのquery()
メソッドでa を使用しています:
その後、データを使用するアプリケーションで次のことを行います。
ただし、データには元のバイト配列の内容が含まれていません。むしろ、[B@435cc518
配列の内容よりもアドレスのように見える のようなものが含まれています。の実装でバイト配列をラップしようとしましたjava.sql.Blob
が、コンテンツ プロバイダー サブシステムは SQLite で使いやすいように作成されているため、それを探している可能性があると考えましたが、役に立ちませんでした。
誰かがこれを機能させましたか?データがファイル システムにあった場合ContentProvider
、マーシャリングInputStream
されたデータをクライアントに提供するために使用できる方法がありますが、返送しようとしているデータは、コンテンツ プロバイダーの APK のリソースとして存在します。
android - データベースからマップを検索するためのMatrixCursor列のNumberFormatException
を使用してデータベースコンテンツからマップ検索で検索を使用していますMatrixCursor
。私は NumberFormatException
バージョンAndroid SDK
を持ってい2.2
ます。私の宣言では、私は次のことを行いました。
また、そのためのオブジェクトを作成しましたMatrixCursor
。
これが私が得ている例外です:
なぜこの例外が発生するのですか?どうすれば修正できますか?
android - CursorJoiner / MatrixCursor / MergeCursorをいつ使用するのですか?
2つ以上の結合されたテーブルからエレガントにデータを取得するさまざまな方法を模索しています。
MergeCursor
(Android開発者ガイド)は、(たとえば)SQL UNION
2つのクエリを連結する(またはビューを行として個別に追加するなど)ことで同等のものを置き換えることができることを示唆しているようです-したがって、私が望むものではありません。
しかし、私は正確に何のためにあるのか、またはそれらをどのように使用するのかについて途方に暮れていCursorJoiner
ますMatrixCursor
。私はそれらのソースを調べましたが、(いつものように)それは私には何の意味もありません!私が見つけたそれらの使用例は、結果として生じる効果が何であるかを明確に説明していませんでした。それらの良い説明と、それらが使用される可能性のあるコンテキストを本当にいただければ幸いです。
android - BLOB データを渡すように MatrixCursor を書き換えることは可能ですか?
サーバーから取得した BLOB データをデータベースに保存したくありませんMatrixCursor
。この種のデータを配信できないことはわかっています。誰かがこれから私を助けてくれますか?
android - Android での MatrixCursor の並べ替え
私はMatrixCursor
このようなものを持っています:
そこにいくつかの行があります。私は自分をソートする方法を探していますMatrixCursor
:
- 名前のアルファベット順に
AND
- 最低価格から最高価格まで。
android - MatrixCursor に関する問題
ListView
連絡先に複数の番号がある場合、同じ連絡先に対して複数の行を作成する必要があります。したがって、3 つの番号を持つ連絡先は、 の 3 つの別々の行として表示されますListView
。そのMatrixCursor
ために、個別の行を追加してから、このカーソルを に追加するための を作成しましたListView
。
それは完全に機能していますが、私の問題は、バックグラウンドでデータが変更されたときに、このコードを再度呼び出す必要があることですが、そのためには、最初にこのカーソル値をクリアするか、その中のすべての行を削除してから、新しい行を追加し続ける必要があります。やり方がわからない。ありません:
関数なので、連絡先データが変更された場合は、この関数を再度呼び出す必要があり、作成を続ける場合:
そのたびrequery
に、アプリケーションのメモリ フットプリントが大きくなります。これにより、アプリケーションがクラッシュします。たとえば、3000 の連絡先がある場合、このカーソルには大量のメモリが必要になり、アプリケーションがクラッシュします。この種のリストを表示する他の方法はありますか?
android - MatrixCursorを使用するときにListViewの特定の行を更新する最適な方法
ListView
からのカスタムCursorAdapter
フィードを使用していMatrixCursor
ます。の各行にListView
は非同期で読み込まれる画像があり、画像の読み込みが完了したら、問題の行を再描画するようにアダプターに通知します。特定の行を再描画するためContentProvider
に呼び出す場所からのデータを使用して、すでに同様のことを行います。getContentResolver().notifyChange
の場合、MatrixCursor
を呼び出すことができますnotifyDataSetChanged
が、すべての行が更新されるため、これは最適ではありません。
だから私の質問は、ListView
一時的なソースからの特定の行を再描画するための最良の方法は何ですか?「一時的」を設定する方法ContentUri
、またはアダプタが特定の行のみを無効にするように要求する方法はありますか?
android - ListView で使用するカーソルの作成
ここで達成しようとしているのはCursor
、 Android で使用できる を作成することListView
です。複数のファイルから直接値を読み取っていて、それらをカーソルにフィードする必要があります。使用しようとしましMatrixCursor
たが、配列で動作させることができません。これまでの試みを以下に投稿しましたが、すべての新しい提案を受け入れます。これを行う簡単な方法はありますか?
このコードはコンパイルできますが、次の場所でクラッシュしcursor.addRow(fsii);
ます:
with 02-24 21:16:49.589: E/AndroidRuntime(3895): at com.manager.abcd.r1223.NameManager.getnameList(NameManager.java:81)
.
MartixCursor
これは配列をサポートしていないことに問題があると考えていますが、間違っている可能性があります。何か案は?