我使用以下代码使用按钮名称数组在水平布局中创建按钮:
LinearLayout tabView = (LinearLayout) findViewById(R.id.tabView);
tabView.setOrientation(LinearLayout.HORIZONTAL); //Can also be done in xml by android:orientation="vertical"
for (int i = 0; i < tabButtonNames.length; i++) {
Button btnTag = new Button(this);
btnTag.setText(tabButtonNames[i]);
btnTag.setWidth(50);
btnTag.setHeight(14);
btnTag.setTextSize(8);
btnTag.setId(i);
btnTag.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
---the code TODO
});
tabView.addView(btnTag);
}
它们已创建,但我无法使用 setWidth
、setHeight
或 LayoutParam
更改按钮的高度和宽度。然后,在按下按钮时,我想使用按钮名称数组在垂直布局中创建更多按钮的列表。我在 onClick
方法中使用了与上面相同的代码,但应用程序在按下按钮时崩溃。另外 Button btn=new Button(this)
不能在 onClick 中使用。
我已经在 iPad 应用程序中轻松完成了此操作,但在这里我遇到了麻烦。
最佳答案
使用
Button btn = new Button(getApplicationContext());
或者
按钮 btn = new Button(ActivityName.this);
而不是
Button btn = new Button(this);
作为按钮需要上下文。并且在 OnClick 中,无法访问 Activity 的上下文。
关于java - 如何在按下按钮时创建按钮?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20261219/