java - 如何在按下按钮时创建按钮?

标签 java android

我使用以下代码使用按钮名称数组在水平布局中创建按钮:

 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);
            }

它们已创建,但我无法使用 setWidthsetHeightLayoutParam 更改按钮的高度和宽度。然后,在按下按钮时,我想使用按钮名称数组在垂直布局中创建更多按钮的列表。我在 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/

相关文章:

java - 安卓 : setOnClickListener does not work when calling Twice

android - Android 上的冗余运动传感器?

Android 市场统计 API?

android - 应用程序崩溃并出现错误 java.lang.IllegalArgumentException : Layout: -72 < 0

java - 使用 RMI 拒绝主机连接

Java 私有(private)方法覆盖

java - 使用文件位置显示 'windows explorer'中的文件

Java简单拖动方程

java - SwingWorker 是否必须是嵌套类?

android - 如何解决android studio中的gradle冲突?