Android 当我试图调用按钮的方法时,为什么程序会崩溃?

Android 当我试图调用按钮的方法时,为什么程序会崩溃?,android,button,graphics,view,crash,Android,Button,Graphics,View,Crash,所以,我正在为Android编写一个程序。现在,我在一个名为GraphicsView的类中,该类扩展了View并实现了View.OnClickListener。我创建了一个按钮mLeft,当按下该按钮时,应该会将对象向左移动。我试图让它显示在屏幕的左下角。在GraphicsView的构造函数中,我有以下代码: mLeft = new Button (context.getApplicationContext ()); mLeft.setId (1); // wasn't sure what el

所以,我正在为Android编写一个程序。现在,我在一个名为GraphicsView的类中,该类扩展了View并实现了View.OnClickListener。我创建了一个按钮mLeft,当按下该按钮时,应该会将对象向左移动。我试图让它显示在屏幕的左下角。在GraphicsView的构造函数中,我有以下代码:

mLeft = new Button (context.getApplicationContext ());
mLeft.setId (1); // wasn't sure what else to set for an id, I only did that to see if it would fix anything
mLeft.setOnClickListener (this);
在我的onDraw中,我有:

mLeft.draw (canvas);
只有这段代码,程序运行良好,当我转到使用GraphicsView的活动时,它运行完全正常,除了按钮没有显示在任何地方的外观

我的构造函数中也有这个doe,就在setOnClickListener的正下方:

mLeft.setX (0);
mLeft.setY (mDisplay.getHeight () - 64);
mLeft.setHeight (64);
mLeft.setWidth (64);
mLeft.setBackgroundColor (80000000);
mLeft.setText ("<");
每当我有这个代码在那里,我去那个活动,程序崩溃。这里有onClick,除了顶部的按钮mLeft,这是我与这个按钮相关的所有代码。基本上,每当我试图从Button调用这些方法时,程序都会崩溃。我试着注释这些代码,因为代码中一次只有一个,所以我知道每一个单独的注释都可能杀死程序

日志显示:12-04 15:11:03.581:I/dalvikvm2692:找不到方法android.widget.Button.setX,该方法引用自方法edu.pacificu.cs.Views.GraphicsView

谢谢你的帮助

mLeft=新建按钮上下文。getApplicationContext

不要那样做。仅当上下文是活动时才使用new Buttoncontext。永远不要使用getApplicationContext,除非您确切知道使用它的原因

日志显示:12-04 15:11:03.581:I/dalvikvm2692:找不到方法android.widget.Button.setX,该方法引用自方法edu.pacificu.cs.Views.GraphicsView


正如@Selvin所指出的,您似乎正在Android2.x上运行此应用程序,使用的方法setX在Android2.x上不存在。setX和setY主要用于动画效果,例如幻灯片。视图的X/Y/Z位置由其容器布局和容器配置决定。

Button.setX。。。API 11级…非常感谢:那么按钮将具有设置布局位置、宽度和高度的方法?@Taylormatyaz:如我所述,视图的X/Y/Z位置由其容器布局和容器配置决定。请阅读一些Android编程教程和示例以了解其实际应用,因为绝大多数示例都使用普通容器(如LinearLayout)将小部件放置在一行或一列中。非常感谢!我想我现在明白了。