본문 바로가기

Android/Activity

안드로이드/Android Context를 이용해 Activity에 있는 메서드 호출 하기~!


 < 개발 환경 >  
   작성일 : 2013.01.26
   OS 설치 버전 : Windows7 32bit  
   SDK 설치 버전 : 안드로이드 SDK 4.2 (젤리빈) / API LEVEL : 17  
   ADT 설치 버전 : 21   
   Java 설치 버전 : JDK 1.6.0_20 / JRE6 
   이클립스 설치 버전 : Indigo
   테스트단말 : 삼성 갤럭시 S2 4.0.4 (아이스크램 샌드위치)   

 < 프로젝트 적용 > 
   Android Build Target / API LEVEL / Complie With : 17  
   minSdkVersion : 8 
   targetSdkVersion : 16  
   Java Compiler Level : 1.6  
   Text file encoding : UTF-8







안드로이드/Android Context를 이용해 Activity에 있는 메서드 호출 하기~!





CustomView나 다른 클래스에서 Activity를 호출하는 방법입니다. 원리는 Activity에서 CustomView를 생성할 때 생성자로 Context를 넘겨 줌으로써 Context를 이용한 Activity 메서드 호출 할 수 있게 해주는 방식 입니다. 단 메서드는 public 메서드만 접근 할 수 있습니다.


  

 ((Activity명) Context).호출할 Activity 메서드()



EX)

 

  ((MainActivity) mContext).getCountSum();




MainActivity.java

package arabiannight.tistroy.com.contextclass;

import android.app.Activity;
import android.os.Bundle;

public class MainActivity extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		
		CustomTextView cv = new CustomTextView(this);
		cv.setText("sum = " + cv.getActivityCountSum());
		cv.setTextSize(50);
		
		setContentView(cv);
		
	}
	
	public int getCountSum() {
		return 10 + 30;
	}

}



CustomTextView.java
package arabiannight.tistroy.com.contextclass;

import android.content.Context;
import android.widget.TextView;

public class CustomTextView extends TextView {

	private Context mContext = null;
	
	public CustomTextView(Context context) {
		super(context);
		this.mContext = context;
	}
	
	public int getActivityCountSum() {
		return ((MainActivity) mContext).getCountSum();
	}

}




파일첨부 : 

TestContextClass.zip



스크린샷 :