我创建了一个自定义视图。现在我想创建一个具有一些自定义视图作为组件的类(可能是自定义视图数组)。例如,像 Button b = new Button(this) 这样的东西,我如何将它应用于我的自定义视图?
因为自定义视图的构造函数是CustomView(Context context, AttributeSets attrs),而在我新建的类中,没有context或者attrs?
谢谢!
我创建了一个自定义视图。现在我想创建一个具有一些自定义视图作为组件的类(可能是自定义视图数组)。例如,像 Button b = new Button(this) 这样的东西,我如何将它应用于我的自定义视图?
因为自定义视图的构造函数是CustomView(Context context, AttributeSets attrs),而在我新建的类中,没有context或者attrs?
谢谢!
将此构造函数添加到您的自定义视图类:
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);