我有一个具有gridview的LinearLayout:
public class ParentClass implements OnClickListener , OnFocusChangeListener
{
//instance variables.
//constructors.
//initialization method:
public initMethod()
{
//initializes gridview , set adapters, listeners etc.
//+ code for adding gridview to linear layout etc.
}
//other methods
...
}
class Grid extends ViewGroup{
private GridView _gridView = null;
Grid()
{
super(MyActivity);
//code for grid-view initialization goes here
}
public void setAdapter(GridViewAdapter gridViewAdapter) {
// TODO Auto-generated method stub
_gridView.setAdapter(gridViewAdapter);
}
@Override
protected void onDraw(android.graphics.Canvas canvas) {
super.onDraw(canvas);
}
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec)
{
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
}
@Override
protected void onLayout(boolean changed, int l, int t, int r, int b) {
// TODO Auto-generated method stub
int i = 0;
}
}
}
现在我希望当我在我的Grid类的重写方法中放置一个breakpint时,它应该会命中!为什么Breakpoint不受打击?我错过了一些基本的东西吗?
答案 0 :(得分:0)
根据问题评论,Grid已实例化但未添加到布局中,因此它从未构成View层次结构的一部分,因此没有任何内容可以将其称为onLayout()等。
在Grid._gridView中引用的包含的GridView实例,确实被添加到布局中,因此造成了混乱。
可能Grid类应该扩展GridView而不是包含它。