如何创建新的自定义视图对象

时间:2013-08-17 00:43:46

标签: android android-custom-view

我创建了一个自定义视图。现在我想创建一个具有一些自定义视图作为组件的类(可能是自定义视图的数组)。例如,像Button b = new Button(this)之类的东西,如何将它应用于我的自定义视图?

因为自定义视图的构造函数是CustomView(Context context,AttributeSets attrs),并且在我创建的新类中,我没有上下文或者attrs?

谢谢!

1 个答案:

答案 0 :(得分:1)

将此构造函数添加到自定义视图类:

public CustomView(Context context) {
    mContext = context
}

这是您使用自定义视图的方式:

如果您需要将自定义视图作为唯一视图:

CustomView cv = new CustomView(this);
setContentView(cv);

如果要将自定义视图添加到父视图:

// inflate mainXML
View mainView = getLayoutInflater().inflate(R.layout.mainXML, null);

// find container
LinearLayout container = (LinearLayout) mainView.findViewById(R.id.container);

// initialize your custom view
CustomView view = new CustomView(this);

// add your custom view to container
container.addView(view);

setContentView(mainView);

顺便说一下,这也应该有效:

CustomView cv = new CustomView(this, null);

修改1:

使用嵌套的for循环:

LinearLayout childLL;
CustomView cv

for (int i = 0; i < 8; i++) {
    childLL = new LinearLayout(this);
    for (int j = 0; j < 8; j++) {
        cv = new CustomView(this);
        // set LayoutParams
        childLL.addView(cv);
    }
    container.addView(childLL);
}

setContentView(container);