Extending AdapterView

Posted by Ander Webbs on Stack Overflow See other posts from Stack Overflow or by Ander Webbs
Published on 2010-04-01T21:47:34Z Indexed on 2010/04/01 21:53 UTC
Read the original article Hit count: 248

Filed under:

Hi, i'm trying to make (for learning purposes) my own implementation of a simple AdapterView where items comes from an basic Adapter (ImageAdapter from sdk samples).

Actual code is like this:

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

}

This isn't a coding masterpiece, it just displays a pseudo-listview with pictures. I know i could've used ListView, GridView, Spinner, etc. but i'm relative new to android and i'm trying to figure out some things on it.

Well, the question here is: Why is my onItemClick not firing?

Using the same ImageAdapter with a GridView, everything works ok, but when i use with above class, i get nothing. Inside AdapterView.java there is code for those click, longclick, etc events... so why can't i just fire them? Maybe i'm misunderstanding basic things on how AdapterView works? Should I extend other base classes instead? And why?

Hoping to find more experienced guidance on here, thanks in advance.

© Stack Overflow or respective owner

Related posts about android