1

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

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

谢谢!

4

1 回答 1

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);
于 2013-08-17T00:50:20.430 回答