2012-12-20 3 views
3

MainActivity.java에서 생성 된 3 개의 탭이있는 안드로이드 앱을 개발 중입니다. 모든 탭에는 자체 활동이 있습니다. 이러한 활동에서 그 탭의 목록 뷰를 업데이트하는 "Refresh()"라는 메서드가 있습니다. 사용자가 버튼을 클릭하면 "refreshTab (View v)"메서드가 호출됩니다.부모 활동에서 실행중인 자식 활동의 메소드를 어떻게 호출합니까?

// Tab refreshen 
public void refreshTab (View v) { 
    Activity MyActivity = this.getCurrentActivity();   
    MyActivity.Refresh();  
} 

이 던지고는 "방법 새로 고침() 유형의 활동에 대해 정의되지 않는다. 그러나,"MyActivity "탭 활동으로 가득합니다. 나는이 작업을지고 가겠어요 어떻게?

답변

2

활동을 자신의 활동 유형으로 캐스팅해야합니다. 지금은 "새로 고침"기능이없는 Android 클래스 활동을 호출하려고합니다.

0

버튼 처리기가 조금 복잡해졌습니다. 그것은 단지 두 줄입니다) ...

방법 당신은 당신의 OnClickListener이 (활동의 클래스 내에서 여전히) 인라인 바로 정의한 경우 MyClassType이의 이름입니다 조금 방향을 추가해야 할 수 있습니다

// Tab refreshen 
public void refreshTab (View v) { 
    Refresh();  
} 

:3210

그냥 그런 짓을 확장하는 클래스 Activity :

// Tab refreshen 
public void refreshTab (View v) { 
    MyClassType.this.Refresh();  
} 
관련 문제