为什么我会出现语法错误?

时间:2011-02-27 21:04:07

标签: android

您好我写了这段代码,我不明白为什么要给我syntax error on token "}", delet this token

private class DemoView extends View{
        public DemoView(Context context) {
            super(context);
            // TODO Auto-generated constructor stub
        }//here***

        final int x = 0;
        final int y = 0;

this.setOnTouchListener(new View.OnTouchListener(){
            public boolean onTouch(View v, MotionEvent e){
                switch(e.getAction()){
                case MotionEvent.ACTION_DOWN:
                    x++;
                    break;
             case MotionEvent.ACTION_MOVE:   // touch drag with the ball
                // move the balls the same as the finger
                    x = x-25;
                    y = y-25;   
                    break;
                }
                return true;
            }//here***
         }   

由于

2 个答案:

答案 0 :(得分:2)

多个错误:

  1. 首先关闭花括号关闭了构造函数。应该在代码的最后。
  2. setOnTouchListener()错过了大括号。
  3. 您的变量x,y应该是字段(而不是自动变量),以便可以在匿名类View.OnTouchListener
  4. 中更改它们

    以下是更正的代码(我希望它符合您的意图):

    public class DemoView extends View {
    
        int x = 0;
        int y = 0;
    
        public DemoView(Context context) {
            super(context);
    
    
            this.setOnTouchListener(new View.OnTouchListener() {
                public boolean onTouch(View v, MotionEvent e) {
                    switch (e.getAction()) {
                        case MotionEvent.ACTION_DOWN:
                            x++;
                            break;
                        case MotionEvent.ACTION_MOVE:   // touch drag with the ball
                            // move the balls the same as the finger
                            x = x - 25;
                            y = y - 25;
                            break;
                    }
                    return true;
                }//here***
            });
        }
    }
    

答案 1 :(得分:0)

您忘记了文件末尾的一个}。声明两个字段后的语句也不包含在任何方法中。您应该将它们移动到构造函数。