我增加了一些按鈕具有以下行:如何從編程添加的按鈕獲取OnClick()?
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什麼都不做,我認爲) – njzk2
按鈕的創建是在for循環中,並且創建了多個按鈕。 –