問題タブ [android-cursor]

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 に答える
2686 参照

android - Androidでカーソルの特定の行を非表示にする方法

私はカーソルを持っています。たとえば、40 行になりました。ユーザーがチェックボックスをオンにしたときに、いくつかの行を非表示にしたいと考えています。

1つの方法は、カーソルでクエリを再度実行することですが、条件がJavaによって行われるため、役に立ちません(多くのロジックでバランスを計算します)。

現在の行を取得し、表示できるかどうかを返すものが必要です。

どんな助けでも大歓迎です。

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

android - StaleDataException: 閉じたカーソルへのアクセス

私のアプリケーションでは、十分にクリックした後、次のエラーが発生します。

私が持っているのは、各タブのコンテンツとして ListActivity を持つタブ アクティビティ (私の MainActivity) です。各 ListActivity の onCreate 内で、そのリストに表示されるデータを表すカーソルを取得します。

各リストの onListItemClick も別のアクティビティを作成するため、リスト内の項目をクリックすると、その項目に関する詳細情報が新しい画面に表示されます。一貫性がありませんが、これらの新しいアクティビティを十分にクリックした後、または新しいアクティビティから ListView に戻ると、プログラムがクラッシュします。

私の問題の解決策を探し回っているときに、registerDataSetObserver に出くわしましたが、それがすべての答えではないようです。また、ドキュメントを見つけるのに苦労しているため、完全に理解しているとは言えません。私は、両方の ListViews が使用し、そこのカーソルで registerDataSetObservers を呼び出したカスタム ListAdapter を持っています。

ListActivities の 1 つとカスタム ListAdapter クラスから関連するコードを添付しました。


リスト アクティビティ。私はこれらのうちの 2 つを持っていますが、異なるデータベース クエリから作成された異なるカーソルを持っていることを除いて、ほとんど同じです。

カスタム ListAdapter:

MyDataSetObserver で例外をキャッチして先に進む必要がありますか? 可能であれば、それよりも堅牢なソリューションが必要です。または、staleDataException が (頻繁に) 発生しないようにプログラムを再配置できる他の方法はありますか? onListItemClick で新しいアクティビティを起動しているため、それが起こっていると思います。

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

android - Android で利用可能なすべての画像を一覧表示する

電話のSDカードで利用可能なすべての画像をリストする必要があるアプリケーションを作成しています。

ContentResolver の方法でクエリを実行してみました

しかし、結果はありません。

リストを取得する方法はありますか、それが不可能な場合、ユーザーがファイルを選択してからユーザーが選択したファイルのパスにアクセスできるようにする意図 (PICK など) はありますか?

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

java - コンテンツ プロバイダーを介してバイナリ BLOB を渡す

私の一連の Android アプリケーションに合わせてカスタマイズされたコンテンツ プロバイダーがあり、公開する必要があるものの 1 つは小さな (20 ~ 30 KiB) バイト配列です。これらの BLOB の URI は次のようになります。

#は行番号です。結果のカーソルには、標準_id列とデータ列があります。MatrixCursorプロバイダーのquery()メソッドでa を使用しています:

その後、データを使用するアプリケーションで次のことを行います。

ただし、データには元のバイト配列の内容が含まれていません。むしろ、[B@435cc518配列の内容よりもアドレスのように見える のようなものが含まれています。の実装でバイト配列をラップしようとしましたjava.sql.Blobが、コンテンツ プロバイダー サブシステムは SQLite で使いやすいように作成されているため、それを探している可能性があると考えましたが、役に立ちませんでした。

誰かがこれを機能させましたか?データがファイル システムにあった場合ContentProvider、マーシャリングInputStreamされたデータをクライアントに提供するために使用できる方法がありますが、返送しようとしているデータは、コンテンツ プロバイダーの APK のリソースとして存在します。

0 投票する
9 に答える
48727 参照

android - 非アクティブ化されていない、または閉じられていないカーソルをファイナライズする致命的でないエラー

このコードで「非アクティブ化または閉じられていないカーソルのファイナライズ」エラーが発生します。このコードは、リストビューを埋めるために使用されます。

これは致命的ではないエラーであるため、クラッシュは発生せず、すべて正常に機能しているようです。しかし、エラーは気に入らないです。

このコードの最後でカーソルを閉じると、リストビューは空のままになります。onStopでカーソルを閉じると、同じエラーが発生します。

これを修正するにはどうすればよいですか?

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

android - カーソルで見つかった値を logcat に出力しますか? - アンドロイド

私は自分で問題をデバッグしようとしています。私が失敗した場合は後で投稿するかもしれません;-)

私のlogcatログの状態"android.database.CursorIndexOutOfBoundsException: Index -1 requested, with a size of 2"

log.v("desc", cursor)カーソルが返すものを表示するために使用したいと思います。cursor[0] のようにそこから値を指定する方法はありますか?

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

java - AndroidSQLiteクエリとカーソルを使用した複数の行の処理

クエリがあります(使用していますrawQuery()

次に、カーソルを使用して返されるものを保存します。私がやりたいことから、最初の行から始めて、cursor.moveToFirst()各列を列ごとに取得し、その特定の値を変数に格納します。次に、次の行に移動して同じことを行います。だから私の質問は、複数の列を処理するためにカーソルをどのように取得するのかということだと思います。

ありがとう、

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

android - データベースからデータをフェッチするAndroidコード

これがデータベースからデータをフェッチするための私のコードです。私の意見では、正しく動作するはずですが、最初はjava.lang.NullPointerException例外が発生します。その後は問題なく動作します。この問題を解決するには、どのような変更を加える必要がありますか?

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

android - for ループまたは while ループでカーソル項目を参照するにはどうすればよいですか?

タブを作成するデータベース値をループしようとしています。Long 値と String 値を受け入れる createTab というメソッドをセットアップしました。静的データで動作していますが、SQLite データベース レコードをループする方法を理解するのに苦労しています。

これが私の失敗した試みです([未満]を未満記号に置き換えます):

上記のコードで何が間違っていたかを知るために LogCat はおそらく必要ありませんが、念のため...

ご協力ありがとうございました。

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

android - SimpleCursorAdapterを使用してカーソルから値を変更する

{名前、時間(UTC形式)、緯度、経度}の列を持つデータベーステーブルがあります

SimpleCursorAdapterでListActivityを使用してテーブルを表示します。

[時間]列に、UTC形式(18190109089)ではなく、人間が読める形式(13-07-2010 10:40)で時間を表示したいと思います。

Time列の値にフィルタリング/適応が必要であることを指定するにはどうすればよいですか?

考えられる解決策(問題あり):

SimpleCursorAdapterは、次のメソッドを提供します。

カーソルをCharSequenceに変換できるクラス(convertToString(カーソルカーソル)を指定します。とにかく、どの形式でCharSequenceを返すかわかりません。