这个自定义控件的构造函数是:
public ChooseItem(Context context, AttributeSet attrs) {
super(context, attrs);
// TODO Auto-generated constructor stub
LayoutInflater.from(context).inflate(R.layout.chooseitem, this, true);
titleView = (TextView)findViewById(R.id.ctitletv);
numView = (TextView)findViewById(R.id.cnumtv);
timeView = (TextView)findViewById(R.id.ctimetv);
//teEditText = (EditText)findViewById(R.id.te);
}
现在我需要在一个activity里面的一个LinearLayout布局中动态增加这个自定义控件。现在有一个问题是,使用LinearLayout.addview(ChooseItem)的时候,都提示我要初始化。可我不知道ChooseItem ctemp = new ChooseItem(?)这里的初始化参数该怎么写。或者还有别的初始化方法?
我是android新手,恳请各位大牛帮忙~感激不尽~
9 个解决方案
#1
自己顶一下,求教啊~~!!
#2
再顶!
#3
是个View 就都用Context
#4
加一个构造函数public ChooseItem(Context context){
super(context);
}
super(context);
}
#5
我控件类里面两个构造函数都继承了,你写的那个我也有写。
如果只是context还好,但我定义的那个控件必须是在(Context context, AttributeSet attrs)参数下的构造函数里面实现,也就是说我要是new一个ChooseItem,我也要new ChooseItem( Context, AttributeSet)。现在我就是不知道到底传什么样的实参,特别是AttributeSet。
#6
请直接传null就可以了
#7
不可以诶,编译没问题,一在模拟器里面就报错了。我用的是
ChooseItem ctemp = new ChooseItem(this,null);
listLinearLayout.addView(ctemp);
但一运行就错了。
#8
ChooseItem ctemp = new ChooseItem(this,null);
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT);
ctemp.setLayoutParams(params);listLinearLayout.addView(ctemp);
#9
我傻了,没有初始化listLinearLayout,现在运行没问题了!
太感谢你了!!!
#1
自己顶一下,求教啊~~!!
#2
再顶!
#3
是个View 就都用Context
#4
加一个构造函数public ChooseItem(Context context){
super(context);
}
super(context);
}
#5
我控件类里面两个构造函数都继承了,你写的那个我也有写。
如果只是context还好,但我定义的那个控件必须是在(Context context, AttributeSet attrs)参数下的构造函数里面实现,也就是说我要是new一个ChooseItem,我也要new ChooseItem( Context, AttributeSet)。现在我就是不知道到底传什么样的实参,特别是AttributeSet。
#6
请直接传null就可以了
#7
不可以诶,编译没问题,一在模拟器里面就报错了。我用的是
ChooseItem ctemp = new ChooseItem(this,null);
listLinearLayout.addView(ctemp);
但一运行就错了。
#8
ChooseItem ctemp = new ChooseItem(this,null);
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT);
ctemp.setLayoutParams(params);listLinearLayout.addView(ctemp);
#9
我傻了,没有初始化listLinearLayout,现在运行没问题了!
太感谢你了!!!