0

} 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、私がこれを行うことを妨げています。mTomFrom

SimpleCursorAdapter卸売のソースを にコピーしMyCursorViewて条件を に追加するよりも、私の目的を達成するためのより良い方法はありbindViewますか? (その解決策は機能し、迅速ですが、悪い習慣の悪臭を放ちます。)

(メタレベルでは、Android の作成者は、SimpleCursorAdapter を拡張する自由と、実装を変更する自由を交換したようです。両方を保持できる言語はありますか?)

4

2 に答える 2