問題タブ [android-cursoradapter]
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 - BaseAdapterとCursorAdapter
各アダプターをいつ使用するか知りたいのですが。私の経験によると、この記事のBaseAdaptersは、たとえばAPIからデータを取得し、それをCollectionオブジェクトに格納する場合に役立ちます。ただし、CursorAdapterは、データベース、電話アジェンダからコンテンツをクエリするために使用されます...一般に、コンテンツプロバイダーがコンテンツから情報をクエリすることもできます。
したがって、基本的にBaseAdapterは、それらにアクセスするためのコンテンツプロバイダーを持たないクエリに使用されます。その場合、CursorAdapterが最良の選択になるためです。そうですか?
android - ListView のスクロール時に背景色の動作が不安定になる理由がわかりません
私の意見では、この質問は読む価値があると思います...詳細に説明しようとしましたが、読みやすいように抽象化しました。
私は
ListView
カスタムによって移入されていますCursorAdapter
。メソッドで、
bindView()
子の色を設定してみます。この子は
LinearLayout
、リスト内のアイテムに使用されるルート レイアウトです。カスタム CursorAdapterR.layout.list_item
のメソッドで拡張された XML ファイルにあります。newView()
以下のコードを使用して背景色を設定します。
/li>
setBackgroundColor
if ブロック以外は気にしないでください。わかるでしょ。
予想される動作:一部の子はペイントDKGRAY
され、特定の textView に * 追加されます。その他はデフォルトの色になり、この * はありません。この * タグは、(直接) 私のコードではないことを確認するために使用します。
動作: ListView が最初に表示されたときは、期待どおりに問題ないように見えます。リストをスクロールすると、「奇妙」になり (わかりません)、すべての子がペイントされるまで、一部の子の色が変わり始めますDKGRAY
。
さて、最悪なのはこれが機能することです:
適切な子は DKGRAY と GRAY でペイントされ、リストをスクロールしてもリストの色がおかしくなることはありません。色は変わらず、すべて問題ないようです。もちろん、DKGRAY と GRAY は必要ありません。DKGRAY が必要で、他の子はそのままにしておきます。¬¬
私を助けてください!
以下の画像。最初の列の * が異なる日付間でどのように機能するかを確認してください。ただし、色は機能しません。
1-スクロールを開始すると、一部の子はすでに欠陥があります:
2-上下にスクロールを終了し、最終的にすべての子に欠陥があります:
3-しかし、すべての子に色を設定すると、スクロールしてもうまくいきません。
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と同じ非推奨ですか?
android - アクティビティがどこから来たのかを特定するために runQueryOnBackgroundThread を変更する方法は?
3 つのタブ付きアクティビティがあり、全員が同じ cursorAdapter を持つ listView です。もちろん、アクティビティごとに異なるカーソルがあります (それらの唯一の違いはwhere
文字列です)。
runQueryOnBackgroundThread()
フィルタリングされたリストを作成するために、アダプタでをオーバーライドしました。
クエリrunQueryOnBackgroundThread()
に文字列を追加する必要があるため、メソッド内にいるときに元のアクティビティを知る必要がありますfiltered
android - Android - 1 つのレコード (カーソル) を使用して、ListView の複数のリスト項目にデータを入力する方法は?
以下の要件を達成する方法を知っている人はいますか?
データベースが照会されると、返されるレコードは 1 つだけです。このレコードは、ListView のいくつかのリスト アイテム (たとえば 5 つのエントリ) を設定するために使用されます。
レコードが 1 つしかないため、2 番目から 5 番目までのエントリを入力するのに苦労しています。
CursorLoader
データベースからデータを照会するために使用しています。
ありがとう
android - Android:XMLファイルのデータからCursorAdapterを作成する方法
Androidでは、XMLファイルのデータからCursorAdapterを作成できますか?実際の問題は次のとおりです。
アイテムが異なる可能性のあるListViewを作成する必要があります。各アイテムには、ItemName、ItemValue、ItemUnitの3つのフィールドがあります。アダプターがアプリケーションに提供された外部ファイル(例:XMLファイル)から作成されている場合、アイテムの数とそのフィールド値は、アプリケーションコードを変更せずに変更できます。これを達成するための最良の方法は何ですか?
android - CursorAdapter とボタン
私はデータベースを持っています。データベースの値がリストビューに表示されます。リストビューには、ビットマップ、4 つの TextView、および 2 つのボタンがあります。2 つのボタンに対して 2 つの異なる OnClickListeners を作成しましたが、どちらの方法も成功しません。ボタンをクリックすると、「tvText1.setText(...)」を実行しようとすると、プログラムがクラッシュします。
誰かがそれを修正する方法を知っていますか?
xml ファイルのボタンは次のようになります。
これは私の CursorAdapter です
ご協力ありがとうございました。
乾杯
フェリックス
コメント。
レイアウトファイル全体
コメント コメント:
今、私は tv.Text1.setText("On") を削除しました。オンボタンについては、まだ例外があります。オフボタンの場合は、system.out.println() がうまく機能しています。
これはコードの一部です:
android - TextViewとButtonを備えたリストビュー。クリックされたボタンのRowId
私は次のようなリストビューを持っています。TextViewのテキストは、データベースから取得されます。
ボタンをクリックすると、トーストのこの行のTextViewにテキストが表示されます。
私の質問は次のとおりです。ボタンをクリックすると、カーソルで選択された行のテキストが表示されます。ボタンがある行のテキストは表示されていません。問題はmCursor変数です。
修正方法がわかりません。誰かアイデアはありますか?
これが私のModulCursorAdapterです:
コメント
xmlファイルのボタン:
MainActivityのOnClickMethod
主な活動
Notes.DbAdapter.fetchAllNotes()メソッド
ありがとう。
フェリックス
android - CursorAdapterを使用してListViewから選択したアイテムを削除する方法
私が使用CursorAdapter
しているのは、以下が私のアダプタクラスです。私のリストは、2つのテキストビューと各行の1つのボタンで構成されています。次に、ボタンをクリックすると、選択したアイテムをリストとデータベースから削除します。選択したアイテムのIDをデータベースから取得して、アイテムを削除してからアダプターに通知(リストを更新)するにはどうすればよいですか。
android - Android:CursorAdapterのContentObserverとDataSetObserverの登録を解除する方法
適用するContentObserverとDataSetObserverの登録を解除するためのインターフェイスがCursorAdapter側にないことがわかりました。Cursor.getCursor()。close()を使用してカーソルを閉じることはできますが、オブザーバーの登録を解除することはできません。