Android 我如何在点击和安卓操作系统时改变按钮的位置?如何在java中添加计时器和控制时间?

Android 我如何在点击和安卓操作系统时改变按钮的位置?如何在java中添加计时器和控制时间?,android,random,onclick,position,exchange-server,Android,Random,Onclick,Position,Exchange Server,如果我只使用int x=r.nextInt(480);和int y=r.nextInt(800);按钮不在屏幕上,但我尝试使用int x=r.nextInt(480-按钮右键);和int y=r.nextInt(800-钮扣高度),所以我犯了个错误,有人能帮我吗?plz详细定义了每件事,我是一个新的Android开发者 Button btn; @Override protected void onCreate(Bundle savedInstanceState) { // TO

如果我只使用int x=r.nextInt(480);和int y=r.nextInt(800);按钮不在屏幕上,但我尝试使用int x=r.nextInt(480-按钮右键);和int y=r.nextInt(800-钮扣高度),所以我犯了个错误,有人能帮我吗?plz详细定义了每件事,我是一个新的Android开发者

Button btn;

@Override
protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.tuchme);

        btn = (Button) findViewById(R.id.btn);

        btn.setOnClickListener(this);

}

public void onClick(View v) {
        // TODO Auto-generated method stub
        switch (v.getId()) {
        case (R.id.btn): {
              Random r = new Random();
   int x = r.nextInt(480 - buttonWidth); //btnWidth cannot be resolved to a varriable.
   int y = r.nextInt(800 - buttonHeight);

                btn.setX(x);      
                btn.setY(y);   

        }

        }

如果我只使用int x=r.nextInt(480);和int y=r.nextInt(800);按钮不在屏幕上,但我尝试使用int x=r.nextInt(480-按钮右键);和int y=r.nextInt(800-钮扣高度),所以我犯了个错误,有人能帮我吗?plz详细定义了每件事,我是一个新的Android开发者!如果你能定义我如何在屏幕上添加一个计时器,以及我如何控制它,请你在代码中的任何地方都没有声明
buttonWidth
buttonHeight
。您正在尝试引用不存在的变量


将它们设置为本地变量或类级别变量,并确保为它们指定了值。

在代码中,buttonHeight和buttonWidth不是整数。您必须首先将它们声明为
int buttonHeight=1
int buttonWidth=1
。您必须这样做,因为否则eclipse不知道这个新的
buttonWidth

要将变量buttonHeight和buttonWidth设置为按钮的实际高度和宽度,请在声明它们之后执行以下操作(如上所述)

你应该仔细阅读这里的变量


请注意,如果按钮尚未完全绘制,getHeight()和getWidth()在很多地方都将返回0。在调用这些之前,请使用ViewTreeObserver确保布局已准备就绪。这可能无关,但在线:setContentView(R.layout.tuchme);你是不是拼错了“touchme”?拼写错误可能会导致奇怪的事情发生ButtonHeight=button.getHeight()的可能重复;buttinWidth=button.getWidth();
buttonHeigt = button.getHeight();
buttinWidth = button.getWidth();