2012-08-17 4 views
0

에서 액세스 활동 나는 다음과 같은 처리기 한 : 나는 할 수 있도록하려면: 핸들러

public class SiteListener implements OnItemClickListener{ 
    @Override 
    public void onItemClick(AdapterView<?> adapterView, View view, int position, long id) { 
    } 
} 

호출 할 다음

myActivity.getSupportFragmentManager() 
      .beginTransaction() 
      .add(R.id.site_info, siteInfoFragment) 
      .commit(); 

어떻게 SiteListener의 활동에 액세스 할 수 있습니까? adapterView을 사용하는 방법이 있습니까?

답변

1

FragmentActivity의 인스턴스를 얻으려면 FragmentActivityview으로 캐스팅 할 수 있습니다.

+1

컨텍스트 활동을 보장되어 있습니까? – Casebash

+0

귀하의 경우에는 FragmentActivity가됩니다. 당신이'getSupportFragmentManager()'를 호출하기 위해 FragmentActivity 인스턴스를 요구하기 때문에. –

+0

예'((FragmentActivity) view.getContext())'는 뷰가 첨부 된 FragmentActivity 인스턴스를 제공합니다. –

3

당신이 그것을 만들 때 활동에 대한 참조를 SiteListener로 전달하십시오.

편집 추가 코드 예제 :

public class SiteListener implements OnItemClickListener{ 
    private MyActivity myActivity; 

    public SiteListener(MyActivity myActivity) { 
     this.myActivity = myActivity; 
    } 

    @Override 
    public void onItemClick(AdapterView<?> adapterView, View view, int position, long id) { 
     myActivity.getSupportFragmentManager() 
      .beginTransaction() 
      .add(R.id.site_info, siteInfoFragment) 
      .commit(); 

    } 
}