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