} else if (c instanceof MyView) { setMyViewMyThing(MyView v, text)
メソッドに を追加するために、SimpleCursorAdapter を拡張したいと思いbindView
ます。
public void bindView(View view, Context context, Cursor cursor) {
final ViewBinder binder = mViewBinder;
final int count = mTo.length;
final int[] from = mFrom;
final int[] to = mTo;
for (int i = 0; i < count; i++) {
final View v = view.findViewById(to[i]);
if (v != null) {
boolean bound = false;
if (binder != null) {
bound = binder.setViewValue(v, cursor, from[i]);
}
if (!bound) {
String text = cursor.getString(from[i]);
if (text == null) {
text = "";
}
if (v instanceof TextView) {
setViewText((TextView) v, text);
} else if (v instanceof ImageView) {
setViewImage((ImageView) v, text);
} else {
throw new IllegalStateException(v.getClass().getName() + " is not a " +
" view that can be bounds by this SimpleCursorAdapter");
}
}
}
}
}
とが SimpleCursorAdpater のプライベート メンバーであるという事実がmViewBinder
、私がこれを行うことを妨げています。mTo
mFrom
SimpleCursorAdapter
卸売のソースを にコピーしMyCursorView
て条件を に追加するよりも、私の目的を達成するためのより良い方法はありbindView
ますか? (その解決策は機能し、迅速ですが、悪い習慣の悪臭を放ちます。)
(メタレベルでは、Android の作成者は、SimpleCursorAdapter を拡張する自由と、実装を変更する自由を交換したようです。両方を保持できる言語はありますか?)