問題タブ [android-viewbinder]
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 - setViewBinder/setViewValue と getView/LayoutInflater の使用の違いは何ですか?
行内の何かを変更するには、次の 2 つの方法があるようですListView
。
setViewBinder
/の使用setViewValue
:myCursor.setViewBinder(新しい SimpleCursorAdapter.ViewBinder() {
/li>getView
/の使用LayoutInflater
:public View getView(int 位置、View convertView、ViewGroup 親) {
/li>
これら2つのアプローチの違いは何ですか?
android - ListView アイテムに異なる背景を持たせる (そして維持する) にはどうすればよいですか?
この質問ListView
で、特定のアイテムについて同様のことを達成しました。
ただし、今は、ユーザーがアイテムをクリックできるようにしたいと考えています。これにより、ユーザーがタップしたアイテムが基本的に強調表示されます。ViewBinder
アプリケーションでタップされたアイテムのリストを保持しており、スクロールが発生したときにこれを参照できるはずですが、それ自体LinearLayout
を構成する に何も適応していないため、オブジェクトを取得する方法がわかりません背景色を適切に設定するため。ListView
LinearLayout
ご存知かもしれませんが、スクロールするときに Android はリスト項目を再利用しますが、個々のリスト項目の書式設定 (色など) を変更しない限り問題ありません。その場合、リスト アイテムの色や書式が正しくないことになります。リスト項目内ViewBinder
の問題を解決するために を使用していますが、それ自体の背景に対して同様のことを行う方法がわかりません。TextViews
ListView
android - SimpleCursorAdapter の画像
データベースから画像を取得し、アイテム ビューに配置するためSimpleCursorAdapter
に aを使用しようとしています。これが私のコードです:ViewBinder
ListView
私は得ています:
実行中byte[] byteArr = cursor.getBlob(columnIndex);
。誰かが私が間違っていることを知っていますか?
android - 列名の代わりにフィールド値を取得するにはどうすればよいですか?
次のように、カーソルからのデータでリストを埋めたいと思います。
私はカスタムを使用して、各行にViewBinder
2TextViews
つと1つを入力します。ImageView
私の問題は、cursor.getString()
メソッド呼び出しがフィールドの値ではなく列名を返すため、列名を持つ数百の行を取得することです。
アップデート:
私getAllCompanie
のsにはmoveToFirst
呼び出しが含まれていますCursor
が、それでも列名を取得します。
android - ViewBinder の条件付きアクション
ListView
( with を使用SimpleCursorAdapter
して)ラインアイテムを無効にしたいのですViewBinder
が、うまくいきません:
を削除するelse
と、ランダムに無効になり、if-else
存在する場合はすべて有効になります。何が起こっている?
android - ListView の内容は多くのメモリを消費します
にListView
はかなり多くのアイテム (20 以上) が含まれており、それぞれにImageView
ビットマップ ソースが含まれています。これらのビットマップは圧縮されておらず、サイズは約 640x480 です。ロードしたばかりのときListView
は少しメモリを消費しますが、スクロールするとエラー"Memory exceed VM budjet"
が発生する場合があります。フラグメントを別のフラグメントに置き換えると、ListView
まだメモリ内でハングしています。ram/ListView キャッシュをクリアするにはどうすればよいですか?
アップデート :
と一緒に使用SimpleCursorAdapter
しますViewBinder
:
画像は別のスレッドで読み込まれます。
android - ListView内のすべてのアイテムのバインドされていない子ビューを更新するにはどうすればよいですか?
ListView
カスタムレイアウトに5つの子View
オブジェクト(4TextView
と1 )がCheckBox
あるカスタムレイアウトを使用するがあります。ただし、TextViews
バインドされてCheckBox
いるのは、データベースに対応するフィールドがありません。の目的は、CheckBox
表示されているアイテムのどれを「次のステップ」で処理したいかを識別することです。私はカスタムViewBinder
を使用してテキスト値を正しく割り当てています(DBからの値の一部が日付などであるため)。
ユーザーインターフェイスの一部は、リスト内の各アイテムのステータスを切り替えるために使用する「すべて」、「なし」、および「反転」の3つのボタンです。たとえば、[すべて]ボタンの場合、次のコードを使用してこれを実行します(これは正しくないことがわかっています。これを含めて、実行しようとしていることを示します)。
これは、リスト内のアイテムの数がリストサイズを超えない限り正常に機能し、すべてのアイテムが常に表示されます。ただし、その数を超えると、'getChildAt'関数がnullを返すことがあります。これは、(正しく理解していれば)リスト内のすべてのアイテムを返すことを意図しておらず、表示されているアイテムのみを返すことを意味するためNullPointerException
です。
CheckBox
ビューが表示されていない場合でも、すべてのビューに適切に設定するにはどうすればよいですか?
android - ListView 項目の ViewBinder setViewValue により、複数の CheckBox がチェックされる
私は次のものを使用してListView
います:
- リスト項目クリック
CheckBox
クリック
を使用してcursorPositionを保存できview.setTag(cursor.getPosition())
、チェックされたアイテムに対して必要なアクションを実行できますが、下にスクロールすると、他のいくつかのCheckBoxes
チェックされたアイテムが表示されます(ビジュアルのみ)。回避策として、ビューの説明を設定し、CheckedBox
ビュー ID をリストに保存CheckBox
してから、チェック済みとして表示する必要があるかどうかを確認することを繰り返しました。しかし、下にスクロールするとビューが再利用されているように見えます(同じビューID)。
実際のチェック済みのみを表示するにはどうすればよいCheckBoxes
ですか? コード:
使用されます:
mySimpleCursorAdapter.setViewBinder(myViewBinder);