Extending AdapterView

Ich versuche, (zu Lernzwecken) meine eigene Implementierung eines einfachen AdapterView zu erstellen, bei dem Elemente von einem Basisadapter stammen (ImageAdapter aus SDK-Beispielen).

er tatsächliche Code sieht folgendermaßen aus:

    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!");
    }
}

Dies ist kein Meisterwerk der Codierung, sondern zeigt nur eine Pseudolistenansicht mit Bildern an. Ich weiß, ich hätte ListView, GridView, Spinner usw. verwenden können, aber ich bin relativ neu bei Android und ich versuche, einige Dinge darauf herauszufinden.

Nun, die Frage hier ist: Warum ist mein onItemClick nicht feuern?

Mit demselben ImageAdapter mit einer GridView funktioniert alles in Ordnung, aber wenn ich mit der obigen Klasse arbeite, erhalte ich nichts. Innerhalb AdapterView.java Es gibt Code für diese Click-, Longclick-, usw.-Ereignisse. Warum kann ich sie dann nicht einfach auslösen? Vielleicht verstehe ich grundlegende Dinge in Bezug auf die Funktionsweise von AdapterView falsch? Sollte ich stattdessen andere Basisklassen erweitern? Und warum

Hoffentlich finden Sie hier weitere erfahrene Anleitungen, vielen Dank im Voraus.

Antworten auf die Frage(3)

Ihre Antwort auf die Frage