前pression的非法启动? [英] Illegal start of expression?

查看:123
本文介绍了前pression的非法启动?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想建立一个简单的Andr​​oid应用程序增加了一些显示的每一个按钮pressed时间,但我不能工作了如何解决前pression的非法启动错误我不断收到。

我的code:

 包com.clicker;进口android.app.Activity;
进口android.os.Bundle;
进口android.view.View;
进口android.widget.Button;
进口android.widget.TextView;
公共类Clicker的扩展活动
{
    私人INT clickerNumber = 0;
    私人TextView的clickerText;
    私人按钮clickerButton;    / **当第一次创建活动调用。 * /
    @覆盖
    公共无效的onCreate(捆绑savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        的setContentView(R.layout.main);
        clickerText =(的TextView)findViewById(R.id.clickerText);
        最终按钮clickerButton =(按钮)findViewById(R.id.clickerButton);
             clickerButton.setOnClickListener(新View.OnClickListener());
                {
                 公共无效的onClick();
                    {
                    clickerNumber = clickerNumber ++;
                    clickerText.setText(Integer.toString(clickerNumber));
                    }
                }
    }
}

和编译器输出:

 编译:
[javac的] 2编译源文件到/ home /弗雷泽/应用/ Android版/ code /唱首歌/斌/班
[javac的] /home/fraser/Applications/Android/$c$c/Clicker/src/com/clicker/Clicker.java:24:')'预期
[javac的] clickerButton.setOnClickListener(新View.OnClickListener();
[javac的] ^
[javac的] /home/fraser/Applications/Android/$c$c/Clicker/src/com/clicker/Clicker.java:26:前pression的非法启动
[javac的]公共无效的onClick();
[javac的] ^
[javac的] /home/fraser/Applications/Android/$c$c/Clicker/src/com/clicker/Clicker.java:26:前pression的非法启动
[javac的]公共无效的onClick();
[javac的] ^
[javac的] /home/fraser/Applications/Android/$c$c/Clicker/src/com/clicker/Clicker.java:26:';'预期
[javac的]公共无效的onClick();
[javac的] ^
[javac的] /home/fraser/Applications/Android/$c$c/Clicker/src/com/clicker/Clicker.java:29:';'预期
[javac的] clickerText.setText(Integer.toString(clickerNumber)));
[javac的] ^
[javac的] 5个错误


解决方案

您有一些不需要的分号:

  clickerButton.setOnClickListener(新View.OnClickListener());公共无效的onClick();

要解决语法错误,你想是这样的:

  clickerButton.setOnClickListener(新View.OnClickListener(){
    公共无效的onClick(){
        clickerNumber = clickerNumber + 1;
        clickerText.setText(Integer.toString(clickerNumber));
    }
});

您缩进似乎是错的这可能是部分原因是什么引起的混乱。用你的编辑器的自动缩进搭上了很多这些类型的错误的。

但请注意,上述code仍然不会因为一个匿名类,你不能访问本地变量不是最终内工作。所以,你不能访问 clickerNumber 。如果你把它最终并不能帮助你多少是因为,你不能改变它的价值。您可以促进柜台一个成员变量。

我也建议在尝试写一个Android应用程序之前,你首先按照一个标准的Java教程,并确保您了解了Java的基本语法。你会发现,大多数Android教程将假定你已经编写标准的Java应用程序有很好的理解。

I'm trying to build a simple Android app that increments a number displayed every time a button is pressed, but I can't work out how to fix the "illegal start of expression" error I keep getting.

My code:

package com.clicker;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;


public class Clicker extends Activity
{
    private int clickerNumber = 0;
    private TextView clickerText;
    private Button clickerButton;

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        clickerText = (TextView)findViewById(R.id.clickerText);
        final Button clickerButton = (Button)findViewById(R.id.clickerButton);
             clickerButton.setOnClickListener(new View.OnClickListener());
                {
                 public void onClick();
                    {
                    clickerNumber = clickerNumber++;
                    clickerText.setText(Integer.toString(clickerNumber));
                    }
                }
    }
}

And compiler output:

compile:
[javac] Compiling 2 source files to /home/fraser/Applications/Android/Code/Clicker/bin/classes
[javac] /home/fraser/Applications/Android/Code/Clicker/src/com/clicker/Clicker.java:24: ')' expected
[javac]              clickerButton.setOnClickListener(new View.OnClickListener();
[javac]                                                                         ^
[javac] /home/fraser/Applications/Android/Code/Clicker/src/com/clicker/Clicker.java:26: illegal start of expression
[javac]                  public void onClick();
[javac]                  ^
[javac] /home/fraser/Applications/Android/Code/Clicker/src/com/clicker/Clicker.java:26: illegal start of expression
[javac]                  public void onClick();
[javac]                         ^
[javac] /home/fraser/Applications/Android/Code/Clicker/src/com/clicker/Clicker.java:26: ';' expected
[javac]                  public void onClick();
[javac]                                     ^
[javac] /home/fraser/Applications/Android/Code/Clicker/src/com/clicker/Clicker.java:29: ';' expected
[javac]                     clickerText.setText(Integer.toString(clickerNumber)));
[javac]                                                                         ^
[javac] 5 errors

解决方案

You have some unwanted semicolons:

clickerButton.setOnClickListener(new View.OnClickListener());

public void onClick();

To fix the syntax errors you want something like this:

clickerButton.setOnClickListener(new View.OnClickListener() {
    public void onClick() {
        clickerNumber = clickerNumber + 1;
        clickerText.setText(Integer.toString(clickerNumber));
    }
});

Your indentation seems to be wrong which might be partly what caused the confusion. Use the automatic indentation of your editor to catch a lot of these types of errors.

But please note that the above code still will not work because inside an anonymous class you cannot access to local variables that are not final. So you cannot access clickerNumber. If you make it final that doesn't help you much either because then you can't change the value of it. You could promote the counter to a member variable.

I'd also recommend that before attempting to write an Android application you first follow a standard Java tutorial and make sure you understand the basic syntax of Java. You will find that most Android tutorials will assume that you already have a good understanding of writing standard Java applications.

这篇关于前pression的非法启动?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆