2013-12-12 2 views
8

나는 OnItemClickListener에서 getActivity()를 호출하는 것을 시도하고있다 :Android : OnItemClickListener()에서 getActivity()를 호출하는 방법?

class ViewTest{ //called in a fragment 
setOnItemClickListener(new OnItemClickListener() { 

      @Override 
      public void onItemClick(AdapterView<?> parent, View view, int p, long i) { 
       ((MainActivity) getActivity()).makeResultsbarVisible(); 
... 
      } 

     }); 

} 조각에서

클래스는 다음과 같이 인스턴스화 :

ViewTest editTest = new ViewTest(this); 

하지만 오류가 발생하는 I 해결할 수 없음 :

The method getActivity() is undefined for the type new AdapterView.OnItemClickListener(){} 

getActivity insideItemClick()? 감사.

+0

가능하면 조각에 사용하는 ... 전체 클래스 코드를 게시를 사용하여? –

+0

이것은 활동입니까, 아니면 단편입니까? – rahulritesh

+0

은 – user2212461

답변

25

Fragment 클래스 또는 확장 클래스 내에서만 getActivity을 사용할 수 있습니다. 당신의 onItemClickListenerActivity 사용 MainActivity.this

+0

그레이트 솔루션! MainActivity 클래스 내 Listener에서 호출되었을 때 MainActivity.this가 정확히 무엇인지, MainActivity의 현재 인스턴스가 무엇입니까 ?? – pepper42

0

사용 Class_name.this 또는 인 경우 Context 변수를 정의합니다. 다음 호출하여 makeResultsbarVisible()Context 변수

처럼,

Context c = this; 

c.makeResultsbarVisible();