Android添加布局子项

时间:2012-10-12 13:21:41

标签: android android-linearlayout addchild

我正在创建自己的自定义LinearLayout,并扩展它的类我需要使用addview方法将子项添加到布局中,

我需要访问标记,该标记是在构造函数之后设置的,所以我需要知道做这样的事情的最佳实践

这是我的代码:

public class MyLayout extends LinearLayout {

    public MyLayout(Context context) {
        super(context);


        MyTag tag = (MyTag) getTag();


        // Parent layout
        setOrientation(VERTICAL);
        setLayoutParams(new LinearLayout.LayoutParams(
                LinearLayout.LayoutParams.FILL_PARENT,
                LinearLayout.LayoutParams.WRAP_CONTENT));
        setBackgroundColor(tag.getBgColor());
    }

}

1 个答案:

答案 0 :(得分:0)

  

我需要访问标记,该标记在构造函数之后设置,   所以,我需要知道做某事的最佳做法   此

如果您在之后设置标签,则会调用构造函数,那么您的代码将无效,tag将为null。如果您计划仅在代码中使用自定义LinearLayout(而不是在xml布局中),那么您始终可以调整构造函数以获取额外的MyTag对象:

// ...
public MyLayout(Context context, MyTag theTag) {
    super(context);
    MyTag tag = theTag;
//...

当然,如果您可以在调用构造函数时(当您实例化类型为MyTag的新对象时)构建有效的MyLayout对象,则此方法将起作用。无论如何,如果您的代码如此依赖于MyTag对象,那么您应该在MyLayout类中始终使用默认代码,以便在尚未设置标记时使用它。