0

我正在尝试编写一个动态添加按钮的应用程序。应用程序从服务器接收图像并添加按钮(暂时没有功能)。

主要活动保持线性布局,其中包含按钮和将接收图像并在主要活动中创建按钮的表面视图。

问题是在收到第一张图像后,应用程序在尝试向视图添加新按钮时崩溃。

这是表面视图代码:

public void run() {
        while ( isRunning){
            if ( !ourHolder.getSurface().isValid()){
                continue;
            }

            Canvas canvas = ourHolder.lockCanvas(); // Semafor for the canvas
            canvas.drawRGB(20,20,80);

            if (getNumOfBoards() > 0){
                canvas.drawBitmap(getCurrentBoard(), 0, 0, null);
            }

            ourHolder.unlockCanvasAndPost(canvas);
        }
    }

这是主活动添加按钮代码

public void addButtons(int numOfButton) {
                // create patameter
                LinearLayout.LayoutParams p = new LinearLayout.LayoutParams(
                   LinearLayout.LayoutParams.WRAP_CONTENT,
                   LinearLayout.LayoutParams.WRAP_CONTENT
                );

                // create new button
                Button newbutton = new Button(this);

                // set background color
                newbutton.setBackgroundColor(Color.BLUE);

                // set width and height
                newbutton.setWidth(30);
                newbutton.setHeight(20);

                // set position
                newbutton.setY((float)numOfButton*20);
                newbutton.setX(0);

                // set text
                newbutton.setText("new button");

                // add button to the layout
                buttons.addView(newbutton,p);// **the application crash here**
    }
4

1 回答 1

0

由于 android 处理活动的方式,onCreate不能保证每次addButtons执行该方法时都会调用构造函数(参见Activity Lifecycle Sectiondeveloper.android.com)

你最好找到buttonsLinearLayout

LinearLayout buttons = (LinearLayout) findViewById(R.id.LayoutButtons);

addButtons添加新按钮。

于 2013-03-31T17:21:14.363 回答