2010-04-19 5 views
4

목록보기가있는 Android 애플리케이션을 만들고 목록보기에서 onItemClick 메소드가 포함 된 클릭 리스너를 작성하고 있습니다. 그래서 저는 다음과 같은 것을 가지고 있습니다 :java 클래스가 매개 변수로 포함 된 객체를 전달하십시오.

public class myList extends ListActivity { 
    @Override 
public void onCreate(Bundle savedInstanceState) { 
     getListView().setOnItemClickListener(new OnItemClickListener() { 
    public void onItemClick(AdapterView<?> parent, View view, 
     int position, long id) { 
      /* Do something*/ 
     } 
    } 
} 

일반적으로 정상적으로 작동합니다. 그러나 여러 번 나는 외부 클래스를 컨텍스트로 사용하는 응용 프로그램을 필요로한다는 것을 알게되었습니다. 따라서 저는 다음을 사용했습니다 :

parent.getContext(); 

이 작업을 수행하고 싶습니다. 그러나 그 사실을 알고 싶습니다. 나는 실제로 전화를 걸 수 없습니다 :

super 

실제로 서브 클래스가 아니며 임베디드가 아닙니다. 더 좋은 방법이 있을까요? 또한 올바른 방법이라면 내장 된 메서드에 외부 클래스를 가져 오는 매개 변수가없는 경우 어떻게해야합니까?

감사합니다.

답변

3

질문을 올바르게 이해하고 있다면 익명의 내부 클래스에서 외부 클래스를 호출하고 싶습니다. 맞습니까? 익명 내부 클래스의 onItemClick 방법 내에서

myList.this.getContext(); 

이렇게하려면 다음 구문을 사용합니다. 내부 클래스가 내부 클래스를 포함하는 외부 클래스의 인스턴스에 액세스하도록 정의 된 특수 구문입니다.

+0

감사합니다. –

2

익명의 내부 클래스에서 EnclosingClass.this를 사용하여 외부 클래스의 핸들을 가져올 수 있습니다. 정보는 here을 참조하십시오. 길거나 짧으면 onItemClick() ect에서 myList.this.getContext()를 사용할 수 있습니다.

관련 문제