【发布时间】:2012-09-15 21:19:09
【问题描述】:
我添加了一些带有以下行的按钮:
for (int i=0; i<XML.size(); i++) {
//add button
ToggleButton b = new ToggleButton(this);
// Setting the parameters
lefttextv.setLayoutParams(lleft);
b.setLayoutParams(bright);
//customize button
b.setOnClickListener(this);
b.setId(id_button);
System.out.println(id_button);
b.setHeight(100);
b.setWidth(200);
// Adding to the RelativeLayout as a child
layouth.addView(lefttextv);
layouth.addView(b);
id_button++;
}
但是我怎样才能获得这些的 OnClick() 方法呢?我已经用这个方法实现了 View.OnClickListener:
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
switch (v.getId())
{
case id_button: Log.d("Button 0","Button 0 pressed);
break;
}
}
但这不起作用,我如何获得ID?
【问题讨论】:
-
id_button总是 0 吗?如果不是,为什么要在case语句中检查 0?下次考虑不要使用魔法常量。 -
你不需要在某个时候调用 setOnClickListener 吗? (另外,我认为 setId 什么也不做)
-
按钮的创建是在for循环中,并且创建了多个按钮。
-
为什么不把 id_button 换成 i 呢?一个 id 应该是唯一的,而不是保持不变......
标签: android button onclick onclicklistener buttonclick