0
我有一个在代码中创建的按钮,该按钮具有Click事件的侦听器。每次单击该按钮时,都应该生成另一个按钮并将其添加到原始按钮下方。但是,无论点击第一个按钮多少次,它只会添加一次动态按钮,而不会再添加。添加第一个按钮后,在Android中动态添加按钮不起作用
这里是我的编码:
public class DynaminControlActivity extends Activity {
private RelativeLayout container;
private int mainIdCnt = 0;
private int mainId = 100;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
createMainButton();
}
public void createMainButton() {
container = (RelativeLayout) findViewById(R.id.workLayout);
Button b = new Button(this);
b.setId(mainIdCnt + mainId);
CharSequence text = "Main +";
b.setText(text);
container.addView(b);
if (mainId > 0) {
mainId++;
}
b.setOnClickListener((new View.OnClickListener() {
public void onClick(View v) {
createDynamicButton();
}
}));
}
public void createDynamicButton() {
container = (RelativeLayout) findViewById(R.id.workLayout);
Button b = new Button(this);
CharSequence text = "Main +";
b.setText(text);
RelativeLayout.LayoutParams relLayout = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
relLayout.addRule(RelativeLayout.BELOW, mainIdCnt + mainId);
container.addView(b, relLayout);
if (mainId > 0) {
mainId++;
}
}
我觉得你不需要设置ID到所有按钮,android在创建按钮时设置。尝试删除setid部分。 – Aracem
remove b.setId(MainIdCnt + MainId); 并再试一次。 – user370305
我面临同样的问题 – pas