AdapterView

Custom AdapterView

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();
  }

  @Override
  public ImageAdapter getAdapter() {
    // TODO Auto-generated method stub
    return mAdapter;
  }

  @Override
  public void setAdapter(ImageAdapter adapter) {
    // TODO Auto-generated method stub
    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!");
  }
}

Event

Click

public boolean performItemClick(View view,
int position, long id)
{
if (mOnItemClickListener != null)
{
// ...
mOnItemClickListener.onItemClick(this, view, position, id);
return true;
}
    return false;
}
上一页
下一页