0

次のコードがありますが、上記のエラー メッセージが表示される理由がわかりません。私は明らかにそれが何を意味するかを知っていますが、括弧をチェックしましたが、それらは私には正しいようです. ADT 21.1.0 を実行しています。これまでのところ、Eclipse の再起動を試みました。PC を再起動します。プロジェクトを再構築します。

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の識別子をonListItemClick1のもの (有効な識別子) に変更します。

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 に答える