2012-02-09 4 views
1

onItemClick 메서드를 재정의하려고합니다.이클립스는 왜 방법을 강조 표시합니까?

import android.app.Activity; 
import android.app.ListActivity; 
import android.content.ContentUris; 
import android.content.Intent; 
import android.database.Cursor; 
import android.net.Uri; 
import android.os.Bundle; 
import android.provider.Contacts.People; 
import android.util.Log; 
import android.view.View; 
import android.widget.AdapterView; 
import android.widget.ListView; 
import android.widget.SimpleCursorAdapter; 
import android.widget.TextView; 
import android.widget.AdapterView.OnItemClickListener; 

public class ListViewActivityActivity extends ListActivity implements OnItemClickListener { 

    @Override 
    public void onItemClick(AdapterView adview, View target, int position, long id) {} 

} 

내 질문은 왜 onItemClick 방법은 밑줄을 유지 않습니다있다 : 나는 아래에있는 내 수입과 방법을 넣을 것인가? 내가 도대체 ​​뭘 잘못하고있는 겁니까? 프로젝트를 다시로드하려고 시도했지만 도움이되지 않았습니다. 누구도 같은 문제를 겪고 있습니까?

PS 내가 그 위에 마우스를 가져 가면 그것은 말한다 : 형 ListViewActivityActivity 방법 onItemClick (어댑터 뷰 AdapterView,보기, INT, 긴이) 당신은 AdapterView의 비 제네릭 형식 만 원을 사용하는

+0

밑줄 친 방법을 마우스로 가리키면 이클립스는 무엇을 말합니까? Ctrl + 1로하면 어떻게됩니까? – kostja

+0

또한 "문제보기"에 어떤 종류의 메시지가 있습니까? –

+0

내 생각 엔 ... 프로젝트의 Java 컴파일러 레벨이 "1.5"로 설정되어 있습니까? –

답변

4

프로젝트를 1.5로 설정 자바 컴파일러 수준이 :

onItemClick를 오버라이드 (override) 할 수있는 권리 방법입니다. @Override annotation은 Java 1.5에서 인터페이스 메소드를 구현하는 클래스에는 허용되지 않습니다. 이것은 Java 1.6 이후에서만 허용됩니다.

프로젝트 속성 (프로젝트의 상황에 맞는 메뉴)으로 이동하여 Java Compiler을 선택하고 컴파일러 준수 수준을 1.6으로 설정합니다.

+0

젠장 ... 그것은 일했다 .. 네오 감사! 내 말은 그 사람 !! – Beetle

0

슈퍼 클래스 메소드를 오버라이드 (override) 할 필요 메서드는 제네릭 형식을 사용합니다. 컴파일러에서 허용되지만 권장되지는 않습니다.

@Override 
public void onItemClick(AdapterView<?> adview, View target, int position, long id) {} 
+0

발견! 어떻게 든 코드에서 @Override를 제거해야합니다. 나는 그것이 무시하지 않고 어떻게 작동하는지 이해하지 못한다. 그러나 그것은 작동합니다! – Beetle

+0

아니요, 특수 효과를 삭제하지 않아도됩니다. –

+0

당신은 기적의 일꾼입니다! – Beetle

관련 문제