2013-10-30 1 views
-1

: HotOrNot라는 다른 클래스가: 왜 클래스의 컨텍스트를 전달하는 활동을 확장해야합니다의 Utils라는 클래스가

public class Utils{ } 

이다가. 유틸 클래스에서

public HotOrNot(Context c){ ourContext =c ;} 

, 나는 그래서이 입력 HotOrNot의 인스턴스를 시작하려면 :

HotOrNot info = new HotOrNot(this); 

을하지만,이 코드는 나에게 다음과 같은 오류를 제공합니다 :이 같은 생성자가 포함되어있어

public class Utils extends Activity { } 
:

The constructor HotOrNot(Utils) is undefined

나는 다음과 같은 경우 Utils 클래스를 확장하여이 오류를 해결

왜 Utils는 컨텍스트 HotOrNot의 생성자를 전달하기 위해 활동을 확장해야합니까?

+2

활동 클래스 컨텍스트를 확장하고의 Utils가 – Blackbelt

+1

귀하의 질문이 훨씬 이해가되지 않습니다하지 않기 때문에. HotOrNot이 생성자에 드라이버가 필요한 Car라고 가정 해 봅시다. 애플은 Driver가 아니기 때문에 Car의 생성자에 Apple을 넘길 수는 없습니다. 당연히 당신은 애플이 드라이버를 확장하여 그것이 드라이버이고 자동차 생성자에게 넘겨 줄 수 있다고 주장 할 수있다. 그러나 그것이 컴파일 될지라도, 나는 그것이 유용한 것을 의심한다. –

+0

아마도 자바 튜토리얼을 통해 작업해야합니다. 'Activity'를 확장하면 컴파일 오류가 해결되지만 작동하지 않습니다. – Henry

답변

1

HotOrNot의 생성자는 예상하는 Context (usally이 당신의 주요 활동이 될 것이다). 따라서 Util 클래스에 this을 전달하는 것은 작동하지 않습니다 (Context의 하위 클래스가 아니기 때문에) Utils 클래스에서 Activity을 확장하는 대신 Activity에 대한 참조를 Utils에 전달해야합니다. .

+0

(활동에 대한 참조는 활동 자체와 동일한 수명주기가 있어야합니다) 당신이 제안하는대로 활동에? –

+0

@lisagreen '새의 Utils (ActivityName.this)'다음의 Utils 클래스 '콘텍스트 mCOntext,''이어서 공용의 Utils (컨텍스트 컨텍스트) = {mCOntext 컨텍스트}' – Raghunandan

+0

@lisagreen 이제 새로운 HotOrNot (mContext)로 mCOntext를 사용; – Raghunandan

관련 문제