問題タブ [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 - Androidでローカライズされた形式で日付を表示する
現在、Android用の最初のアプリを作成しています。私が問題を抱えているのは、に関連する日付の保存とローカライズされた表示ですSimpleCursorAdapter
。SQLitedatabase
3つのテーブルへのアクセスをカプセル化するクラスがあります。このクラスは、すべての日付をISO形式( "yyyy-MM-dd")で保存します。日付値がデータベースから読み取られて画面に表示されるときに、ローカライズされた形式でフォーマットする必要があります。これが私が思いついたアプローチです。を使用ViewBinder
してフォーマットを行います。
getDateFormatView()
SimpleDateFormat
から読み取られるパターンを持つオブジェクトを作成しますstrings.xml
。定数パターンを使用して構築さparseDatabaseDate()
れたデータベースからの日付の解析を行います。SimpleDateFormat
yyyy-MM-dd
このコードは問題なく機能しますが、それを行うためのより良い方法があるかどうか疑問に思っています。私が好きではないのは、私が必要としていることです:
- 2つの
SimpleDateFormat
オブジェクト(1つはparseDatabaseDate()
からの日付文字列を解析するために使用され、もう1つはSQLiteDatabase
値をフォーマットするために使用されます) java.util.Date
作成されてすぐに破棄されるオブジェクト- (私の意見では)かなり多くの定型コード。
だから私は尋ねています:ローカライズされた形式で日付を表示するより良い方法はありますか?
android - ViewBInderのcolumnIndexを理解するのに役立つものもあります
コンテキストなしで質問を見たいだけの場合は、一番下にスキップしてください
私が構築しているAndroidアプリには、3つの列を持つ単純なテーブルがあります。
_id INTEGER PRIMARY KEY ...、名前TEXT、色INT
このテーブルはと呼ばれcategories
ます。私は自分のカテゴリをデータベースからロードし、次のようSimpleCursorAdapter
に使用するためにそれらをにフィードします。Spinner
ViewBinder
カテゴリ名をスピナーアイテムのテキストにし、色を背景色にしたいので、カスタムを設定しました。私ViewBinder
はこのように見えます:
これが私の質問です(ついに)
setViewValueメソッドで、columnIndexは何をすることになっていますか?ドキュメントには「データがカーソル内にある列」と記載されていますが、 setViewValueを使用してデバッグすると、3回ヒットし、columnIndexは常に1
です。
from配列のエントリごとに、デバッガーがsetViewValue1
に1回入ることを期待していました。最初にcolumnIndexがあり、次に2
。または、クエリ結果の列ごとに1回ずつです。
上記のコードは機能しますが、NAME_COLUMN定数とCOLOR_COLUMN定数が原因で、目的の機能を取得できます。カスタムViewBindersの経験が豊富な人から、 setViewValueとそのパラメーターの説明を聞いてみたいと思います。
android - アダプターで動的に作成されたオブジェクトへのアクセス
aと aを使用して、とでダイナミックListView
を作成しました。TextView
Spinner
SimpleAdapter
ViewBinder
Spinner
ユーザーが選択した値にアクセスするにはどうすればよいですか?
内のスピナーへの参照を作成する必要があると思いますが、ViewBinder
方法がわかりません。私はこれを試しましたが、うまくいきません:
android - SimpleCursorAdapterのデータの変更
私はListActivity
、一度に1つのチャンネル/1日のテレビ番組を表示するTVガイドアプリに取り組んでいます。アイテムにを使用しRelativeLayout
ていますが、次のように表示したいと思います。ListView
ListView
ListView
次のコードを使用してアイテムのデータを取得します。
私の問題は、start_time
フィールドがdatetime
次の形式であるということです。
だから私が得るものはこれです:
私がやりたいのは、SimpleDateFormat
( )を使用して上記をフォーマットすることです。これにより、フィールドの一部"HH:mm"
のみが取得されます。hour:minute
start_time
私はSimpleCursor.ViewBinder
それが私が望むものかもしれないことを示唆するインターフェースを見つけましたが、それを使用する方法を理解することができません。私が正しければViewBinder
、それを使用する方法についてのサンプルコードへのいくつかのポインタをいただければ幸いです。start_time
それ以外の場合、単にHH:mm
フォーマットを表示するようにフィールドを変更するには、他にどのようにすればよいですか?
android - ViewBinder の問題
いくつかの画像を表示する必要がありListView
、次のコードを使用しています。
問題があります: リストには 4 行のスペースがあり、下にスクロールすると、5 行目の画像が最初の行の画像と同じで、後続の画像も間違っています。
誰かが理由を教えてもらえますか?
android - ExpandableListActivity の ContextMenu に関する問題
にExpandableListActivity
を登録しましたContextMenu
。私がやろうとしているのContextMenu
は、押されたグループの子リスト項目のデータを保存することです。によると:
v
コンテキスト メニューが構築されているビューです。したがって、このビューはクリックしたリスト項目のビューである必要がありますが、そうではなく、子リストの最初のリスト項目を参照しています。コンテキスト メニューが作成されたリスト項目のビューを返す必要があると思いますが、ここではそうではありません。これが私のコードです:
誰かがこれに光を当てることができますか?
編集:
のコードExpandableListAdapter
:
のコードViewBinder
:
android - 変数を ViewBinder に渡す
私とデータベースへのカーソルアダプターとのViewBinder
間の仲介者として機能している があります。ListView
このデータが表示されているコンテキストに応じて、ViewBinder
さまざまなことを行う必要があります。
例として、存在するすべてのタスク グループのタスクを表示するタスク管理アプリケーションを取り上げます。この場合、特定のタスク グループの 1 つのタスクを表示していた場合、アプリはリスト ビューにタスク グループの名前を表示したくない場合があります。リスト ビュー アイテムには非表示のフィールドを含めることができViewBinder
、タスク グループの名前をフィールドにマップし、必要に応じて表示するように設定することができます (メイン アプリケーションの指示に従って)。
私の質問はViewBinder
、それが表示されているコンテキストをどのように伝えれば、どのように動作するかを判断できるのでしょうか?
これはおそらく多くの異なる を実装することで実現できると思いますが、これには多くのコードを複製する必要があり、特定のパラメーターを渡すだけViewBinders
の単一で行うことをお勧めします。ViewBinder
android - ViewBinderのListView行からLinearLayoutの背景を変更できますか?
いくつListView
かの要素があり、データベース内のタイプに応じて行の背景を変更したいと思います。私が得たのはSimpleCursorAdapter
インスタンスであり、それは関数adapter.setViewBinder(...)
です。LinearLayout
しかし、行のにアクセスできないようです。コードは次のとおりです。
android - 多くのカスタム動作を持つ ListView にカーソルを適応させるにはどうすればよいですか?
私は現在SimpleCursorAdapter
、カスタムで を使用ViewBinder
して、ListView
.
ただし、私のリストが画面のサイズよりも長く、ユーザーが上下にスクロールすると、システムが間違った行に間違った色を付けるなどの原因になります。私の理解では、これはシステムの再利用の問題です。here で説明されているように、スクロールの最適化として表示します。
私はすべて最適化を望んでいますが、アイテムを適切に表示する必要がありますListView
。これについて正しい方法は何ですか?
私の考えでは、 a CursorAdapter
、できれば aを実装できると思いますが、そのSimpleCursorAdapter
方法がわかりません。または、私のテキストの色をデフォルトに戻すだけViewBinder
ですか?