0

SimpleCursorAdapter を拡張して newView/getView をオーバーライドする前に、コンストラクターの to パラメーターと from パラメーターを使用して、どの TextView に入力するかを指定していました。

オーバーライドしたとき、to/from パラメータは役に立たないようです。「from」に列名を渡さない場合でも、列にアクセスできますが、同時に、to/from の両方に null を渡してアダプターを構築することはできません (したがって、NullPointerException を取得しないように 1 つの列を渡すだけです)。

bindView で何らかの形で to と from を使用する必要がありますか? もしそうなら、どのように?

4

2 に答える 2

0

オーバーライドしたとき、to/from パラメータは役に立たないようです。

ASimpleCursorAdapterは (その名前が示すように) 限られた範囲のビューをCursorのデータにバインドする単純なアダプターとして設計されており、2 つの配列 (指定された ID を持つビューへの列名) を介してマッピングが行われます。SimpleCursorAdapter(特にバインディングを行うnewView()andメソッド)をオーバーライドする場合bindView()、それらの列は実際には必要ありません。

「from」に列名を渡さない場合でも、列にアクセスできますが、同時に、to/from の両方に null を渡してアダプターを構築することはできません (したがって、NullPointerException を取得しないように 1 つの列を渡すだけです)。

おそらく自分でマッピングを行うことになりますが(オーバーライドするメソッドとその方法はわかりません)、これらの列はアダプターのコードの他の部分で使用されるためnull、これらの配列のいずれかを渡すことは避ける必要があります。とにかく、本当の問題は、SimpleCursorAdapter基本的なシナリオの単純なクラス設計であることです。それをオーバーライドする必要がある場合は、そのスーパークラスCursorAdapter(これらの配列なしで提供されます) を拡張して、必要なことを行うことをお勧めします。

bindView で何らかの形で to と from を使用する必要がありますか? もしそうなら、どのように?

これらの配列は からの列Cursorと、データをバインドするビューの ID を表すため、それらを使用することは理にかなっています。

于 2013-07-30T14:20:50.720 に答える
0

customAdapterTextView などを制御できるため、これらは空にすることができます。getView()

そのため、次のいずれかから制御できますto/from parameters

またはからgetView()

于 2013-07-30T14:08:17.783 に答える