Android错误:令牌“}”上的语法错误,删除此令牌

时间:2013-03-17 22:57:05

标签: java android

我有以下代码,但似乎无法弄清楚为什么我收到上述错误消息。我显然知道这意味着什么,但我检查了括号,它们对我来说似乎是正确的。我正在运行ADT 21.1.0。到目前为止,我已经尝试重启Eclipse;重启我的电脑;并重建项目。

package cct.mad.lab;

import android.app.ListActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;

public class WalkList extends ListActivity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        // storing string resources into Array
        String[] players = getResources().getStringArray(R.array.players);

        // Binding resources Array to ListAdapter
        this.setListAdapter(new ArrayAdapter<String>(this, R.layout.list_item, R.id.label, players));
    }

    protected void onListItemClick (ListView 1, View v, int position, long id) {
        String item = (String) getListAdapter().getItem(position);
    Toast.makeText(this, item + " selected", Toast.LENGTH_LONG).show();
    }
}

2 个答案:

答案 0 :(得分:3)

这几乎可以肯定是因为onListItemClick定义中定义了无效的标识符。

ListView中的onListItemClick标识符从1更改为其他名称(有效标识符)。

来自jls-3.8

  

标识符是Java字母和Java的无限长度序列   数字,第一个必须是Java字母

有关Java信函的更多信息:

  

“Java字母”包括大写和小写ASCII拉丁字母   A-Z (\u0041-\u005a)a-z (\u0061-\u007a),以及历史   原因,ASCII下划线(_, or \u005f)和美元符号($,或   \u0024)。 $字符只能用于机械生成   源代码,或者很少访问遗留的预先存在的名称   系统

答案 1 :(得分:0)

编译器因使用“1”作为标识符而感到困惑。 This answer希望能够深入了解为什么Java中的变量名不能以数字开头,但从根本上说,它位于language spec