2011-12-17 6 views
0

나는 비슷한 주제가 수천 번 발생했음을 알고있다. 그러나 나는 그 중 일부를 탔다.유니버설 홈 버튼 방법

나는 다른 활동을하고 있는데, B, C, D라고 말할 수 있습니다. B, C, D에서 goHome() 메소드로이 버튼을 얻었습니다.

이 방법을 한 번 작성한 다음 B, C, D 활동에 사용하고 싶습니다. 나는 각각의 액티비티 클래스에 대해 메쏘드를 다시 만들고 싶지 않다. 어떻게해야합니까?

답변

2

하위 활동 (여기서 B, C, D)은 onActivityResult()을 처리하는 클래스를 확장합니까? 의도를 시작할 때 startActivityForResult()을 사용하고 요청 및 응답 코드를 전달하십시오.

코드를 onActivityResult()으로 수신하면 간단하게 finish()이됩니다. 이렇게하면 자동으로 모든 하위 활동의 ​​사용자가 다시 활동 A로 이동합니다.

+1

@Xylian 객체 지향 디자인은 이러한 많은 문제에 대한 솔루션을 용이하게합니다. 객체 지향 기술을 연구하면 좋습니다. 당신은 고독한 늑대 또는 팀원입니다. – styler1972

0

정적 메서드 만 포함하는 클래스를 만들 수 있습니다. B, C, D에서 뒤로 버튼을 누르거나 새 활동을 시작하면 A, B, C, D로 돌아갈 지 말하지 않았습니다. 그러나이 정적 메서드를 onBackPressed 메서드 나 "goHome()"메서드에 넣으십시오.

class StaticCode{ 

    static void goHome(){ 
    // the things generally done in B.goHome(), C.goHome(), D.goHome(); 
    } 

} 

나서 B에 고르게, C, D를 호출 :

class B extends Activity{ 
    ... 

public void goHome(){ 
    StaticCode.goHome(); 
} 

} 

참고, 예를 들어 필요에 따라 고정 방법에 컨텍스트 파라미터를 전달.

+0

StaticCode.goHome()은 왜 직접적으로 없습니까? – Floern

+0

@Floern 당신이 원하는대로이 방법을 호출 할 수 있습니다 :) – poitroae