如何以编程方式向自定义视图添加按钮?

时间:2012-08-20 13:07:02

标签: java android button dynamically-generated

我是Android编程的先驱,我正在开发一个程序,修改我发现的一些类here.到目前为止,我有DrawView类,如下所示:

public class DrawView extends View {
   private Ball ball1;

   private Button kapabut;

    public DrawView(Context context) {
        super(context);
        setFocusable(true);

        ball1 = new Ball(context,R.drawable.ortatop);       

       kapabut=new Button(context);  //here, I cannot seem to add a button.
       kapabut.setVisibility(VISIBLE);
       kapabut.setText("xXx");
    }

    @Override protected void onDraw(Canvas canvas) {
        // move the balls at every canvas draw
        ball1.moveBall();

        //draw the balls on the canvas
        canvas.drawBitmap(ball1.getBitmap(), ball1.x, ball1.y, null);
        // refresh the canvas
        invalidate();
    }    
}

球被创造并移动,但我似乎无法在任何地方获得“kapabut”按钮。如何显示此按钮,并添加onClick方法?

任何帮助都将不胜感激,谢谢。

P.S。:我尝试使用XML布局添加了一个Button,但现在我想用这个类创建它,并在Main.java中设置setContentView(new DrawView(this));

1 个答案:

答案 0 :(得分:0)

您无法在View的View方法中添加其他onDraw()个对象,它们在View类中没有任何addView()方法。

要使其工作,请使用ViewGroup扩展 DrawView 类,现在您可以在此添加其他视图。由于addView()方法属于ViewGroup类。

类似的东西,

public class DrawView extends ViewGroup {