Androidアプリ:Class ‘Anonymous class derived from OnItemClickListener’…のエラー
Android Studioで開発中に、ListViewを使っていて以下のようなエラーメッセージが出た場合の理由です。
Class 'Anonymous class derived from OnItemClickListener' must either be declared abstract or implement abstract method 'onItemClick(AdapterView<?>, View, int, long)' in 'OnItemClickListener'
原因はonItemClickメソッドの実装漏れ
上記のエラーメッセージは、特定のメソッド(onItemClick)を実装しなければならない、という警告です。
つまり、コード中に、onItemClickメソッドが実装されていないということになるので、たとえば
public void onItemClick(AdapterView parent, View view, int position, long id){ ... }
をコード中に入れれば動作するようになります。
ListView listView = findViewById(R.id.listview);
ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,listword[1]);
listView.setAdapter(arrayAdapter);
listView.setOnItemClickListener(new AdapterView.OnItemClickListener(){
public void onItemClick(AdapterView parent, View view, int position, long id){
}
}
とりあえず、
listView.setOnItemClickListener(new AdapterView.OnItemClickListener(){}
だけ書いて動作確認しようとしたらこのメッセージが出てしまいました。
また、onItemClick()を、OnItemClick()のように一文字が大文字になっているだけでも同様のエラーが出るので、ケアレスミスのチェックも必要です。
関連記事