Android - 如何在视图组中设置子视图

时间:2010-08-31 12:05:46

标签: java android eclipse

有人可以用我的语法/方法帮助我吗?我想在视图组中设置一堆不同的视图。我的代码在addView方法失败。

不幸的是,我在网上使用ViewGroup类找不到插孔(我学习的方法)。

谢谢大家。

public class TileView extends ViewGroup {
private TestClass mTestClass;
    public TileView(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
        initViews();
    }
    public TileView(Context context, AttributeSet attrs) {
        super(context, attrs);
        initViews();    
    }
    public void initViews() {
        addView(mTestClass);        
    }
    @Override 
    protected void onLayout(boolean changed, int l, int t, int r, int b) 
    { 
    }
}

public class TestClass extends View{

public TestClass(Context context, AttributeSet attrs, int defStyle) {
    super(context, attrs, defStyle);
}

public TestClass(Context context, AttributeSet attrs) {
    super(context, attrs);
}

public TestClass(Context context) {
    super(context);
}

}

1 个答案:

答案 0 :(得分:1)

首先,您应该检查自己的布局xml文件。错误消息行号6错误。第二个问题是您没有在视图组源代码中初始化mTestClass对象。如果要获取子视图,可以在视图组中使用getChildAt(int)方法。这是一个简单的例子,

int count = getChildCount();

for (int i = 0; i < count; i++) {
    View child = getChildAt(i);
}

并且,它是完整的源代码吗?我认为你应该在ViewGroup和View实例中实现onMeasure和onLayout方法。