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