0

我有以下代码,但似乎无法弄清楚为什么我会收到上述错误消息。我显然知道这意味着什么,但我检查了括号,它们对我来说似乎是正确的。我正在运行 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();
    }
}
4

2 回答 2

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)。该$字符应仅用于机械生成的源代码中,或者很少用于访问遗留系统上预先存在的名称。

于 2013-03-17T23:06:47.447 回答
0

使用“1”作为标识符使编译器感到困惑。这个答案希望能提供一些关于为什么 Java 中的变量名不能以数字开头的见解,但从根本上说,它在语言规范中。

于 2013-03-17T23:07:41.770 回答