我用以下代碼添加了一些按鈕:
for (int i=0; i<XML.size(); i++) {
//添加按鈕
ToggleButton b = new ToggleButton(this);
// 參數設置
lefttextv.setLayoutParams(lleft);
b.setLayoutParams(bright);
//自定義按鈕
b.setOnClickListener(this);
b.setId(id_button);
System.out.println(id_button);
b.setHeight(100);
b.setWidth(200);
// 作為子類添加到RelativeLayout布局
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?
b是視圖,如果你的onClick方法在主類中,使用b.setOnClickListener(this);
並且讓activity實現onClickListener方法或者按常規方法設置接聽事件。
id是用於xml引用,對象創建後要使用這個id引用,在你的例子中,你常見的視圖b包含了ToggleButton的所有的屬性。
使用if(v == b)代替if v.getId()