Adaptador extensible

Estoy tratando de hacer (con fines de aprendizaje) mi propia implementación de un Adaptador simple donde los elementos provienen de un Adaptador básico (ImageAdapter de muestras de SDK).

El código real es así:

    public class MyAdapterView extends AdapterView<ImageAdapter> implements AdapterView.OnItemClickListener{
    private ImageAdapter mAdapter;
    public MyAdapterView(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
        initThings();
    }
    private void initThings(){
        setOnItemClickListener(this);
    }
    @Override
    public ImageAdapter getAdapter() {
        // TODO Auto-generated method stub
        return mAdapter;
    }
    @Override
    public void setAdapter(ImageAdapter adapter) {
        // TODO Auto-generated method stub
        mAdapter=adapter;
        requestLayout();
    }
    View obtainView(int position) {
        View child = mAdapter.getView(position, null, this);
        return child;
    }
    @Override
    protected void onLayout(boolean changed, int l, int t, int r, int b) {
     super.onLayout(changed, l, t, r, b);
        for(int i=0;i<mAdapter.getCount();i++){
            View child = obtainView(i);
            child.layout(10, 70*i, 70, 70);
            addViewInLayout(child, i, null, true);
        }
        this.invalidate();
    }
    @Override
    public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
        Log.d("MYEXAMPLES","Clicked an item!");
    }
}

Esta no es una obra maestra de codificación, solo muestra una vista de pseudo-lista con imágenes. Sé que podría haber usado ListView, GridView, Spinner, etc., pero soy relativamente nuevo en Android y estoy tratando de descubrir algunas cosas.

Bueno, la pregunta aquí es: ¿Por qué mionItemClick no disparando?

Usando el mismo ImageAdapter con un GridView, todo funciona bien, pero cuando lo uso con la clase anterior, no obtengo nada. DentroAdapterView.java hay código para esos eventos de clic, clic largo, etc., entonces ¿por qué no puedo simplemente despedirlos? ¿Tal vez estoy malinterpretando cosas básicas sobre cómo funciona AdapterView? ¿Debería extender otras clases base en su lugar? ¿Y por qué?

Esperando encontrar una guía más experimentada aquí, gracias de antemano.

Respuestas a la pregunta(3)

Su respuesta a la pregunta