마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

다른 자바 파일에서 getintent 사용방법?

0 추천
현재 각 액티비티마다 똑같은 기능을 쓰고 있어서

 

같은 기능들은 새로운 자바파일에 모아서 정리를 하고 있습니다.

 

그래서 중복기능을 새로운 자바파일에 옮겼더니

 

Intent it = getIntent();

 

여기서 getIntent 부분에서 에러가 납니다.

 

The method getIntent() is undefined for the type ActivityComp

 

이런메세지인데 이걸 해결하려면 어떻게 해야되나요?

 

정의하는 방법을 찾아보는데

https://www.google.co.kr/search?q=The+method+getIntent()+is+undefined+for+the+type&rlz=1C1CHMR_koKR572KR572&oq=The+method+getIntent()+is+undefined+for+the+type&aqs=chrome..69i57j0l4.709j0j4&sourceid=chrome&espv=210&es_sm=122&ie=UTF-8

 

제가 하는 방법이랑은 다른건지 적용해도해결이 되지 않습니다.

 

고수분들의 조언 부탁드렫 될까요?
브루스웨인 (8,580 포인트) 님이 2014년 2월 17일 질문

2개의 답변

0 추천
 
채택된 답변
Activity 에서 공통으로 사용한다면 ActivityComp extends Activity 하지마시고..

모든 사용자 액티비티의 추상화 액티비티를 하나 만들고 그것을 상속하세요..

public abstract class BaseActivity extends Activity {

  public void method() {

  }

}

이런식으로 말이죠..

그리고

public class Activity extends BaseActivity {

  // 필요시에 위에서 만든 메소드 호출합니다.

}
dante2k (8,390 포인트) 님이 2014년 2월 17일 답변
브루스웨인님이 2014년 7월 19일 채택됨
MainActivity로 기능을 끌어다 쓸 때

예를 들면 저는 Component 라는 자바파일을 만들고 기능이름이 avg()라면

Component.avg();

이런식으로 사용하고 싶은데 위 방법으로는 안되는거 같은데

어떻게 하면 되나요?

Component.BaseActivity.
뭐 이런식으로 써야되나요?

초보라 모르는게 넘 많네요 ㅠ
답글이 늦었습니다.
-----------------
예를 들면 저는 Component 라는 자바파일을 만들고 기능이름이 avg()라면
Component.avg();
이런식으로 사용하고 싶은데 위 방법으로는 안되는거 같은데
--------------------
위 글에 대한 답변으로는 클래스의 메소드를 위의 방법으로 호출하고 싶다면 avg() 메소드가 public static 으로 선언되어 있어야 합니다.
제가 답변한 내용은 공통적으로 사용하는 메소드가 있다면 이를 모두 모아놓은 부모 객체를 선언하고 자식클래스가 이를 상속받아서 부모에게 상속받은 것은 클래스 구분없이 자신의 메소드처럼 그냥 호출하시면 됩니다.
0 추천

ActivityComp 가 Activity 상속 받은 녀석인가요? 아니라면 getIntent 멤버 변수가 없으니 안될 겁니다.

입력 파라메터로 Activity를 받아서 사용해 보세요

Intent getIntent(Activity activity)
{
   return activity.getIntent();
}

 

 

사악미소 (65,330 포인트) 님이 2014년 2월 17일 답변
...