프로그래밍 538

Objective C - 간단한 예제를 이용한 상속이해

기본적으로 모든 클래스는 NSObject를 상속받는다. 이것만 유의하고 다음 예제를 보면 쉽게 상속을 이해할 수 있다. #import //ClassA 선언과 정의 @interface ClassA: NSObject{ int x; } -(void) initVar; @end @implementation ClassA -(void) initVar{ x = 100; } @end //ClassB 선언과 정의 ClassA로부터 상속 받음 @interface ClassB : ClassA -(void) printVar;//ClassB만의 고유 함수 @end @implementation ClassB -(void) printVar{ NSLog(@"x = %i", x); } @end int main(int argc, const..

안드로이드 - 프래그먼트 상태 저장하기

프래그먼트에 관한 내용은 안드로이드-프래그먼트-사용-간단-예제 를 참고하자. 이번에는 스마트폰의 상태 변경이나 화면이 가로로 될 때 자신의 데이터 저장을 해보자 이번에도 다음과 같이 3개의 파일을 만들어야 됨을 잊지 말자. counterfragment.xml 파일 기본적인 프래그먼트를 구성하는 UI 파일 save_fragment_state.xml 프래그먼트를 실제 사용하는 부분 SaveFragmentState.java package com.example.savefragmentstate; import android.app.Activity; import android.app.Fragment; import android.os.Bundle; import android.view.LayoutInflater; imp..

안드로이드 - 한 화면에 여러 개의 프래그먼트 만들기

프래그먼트에 관한 내용은 안드로이드-프래그먼트-사용-간단-예제 를 참고하자. 이번에는 한 화면에 2개의 프래그먼트를 만들어 보는 예제이다.. 프로젝트 익스플로러에서 다음과 같이 3개의 파일을 생성해야 함을 잊지 말자. counterfragment..xml 파일은 실제 프래그먼트를 구성하는 UI파일이다. activity_two_fragment1.xml 여기서 실제 프래그먼트가 2개라는 것을 명시해주는 UI이다. TwoFragment1.java package com.example.ch20_twofragment; import android.app.Activity; import android.app.Fragment; import android.os.Bundle; import android.view.LayoutI..

안드로이드 - 프래그먼트 사용 간단 예제

프래그먼트 간략 설명은 다음 링크를 참조 하자. 커니의 안드로이드 프래그먼트 설명 프래그먼트 생명주기 설명 간단한 예제에 앞서 프로젝트 익스플로러를 보자 아래와 같이 자바파일과 xml파일을 2개로 구성함을 잊지 말자. counterfragment.xml 파일 fragment_test.xml FragmentTest.java package com.example.ch20_fragment_ex1; import android.app.Activity; import android.app.Fragment; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; i..

안드로이드 - 외부 메모리에 앱 설치하기

안드로이드 메니페스트 파일에 설치 가능한 위치를 지정하는 installLocation 속성을 추가했다. 속성 설명 internalOnly 내부 메모리에만 설치 할 수 있고 외부 메모리에는 설치 할 수 없다. preferExternal 가급적이면 외부 메모리에 설치한다. 외부 메모리가 부족하거나 없으면 내부 메모리에 설치한다. auto 내부 메모리가 부족하면 외부 메모리에 설치한다. 다음 예제를 통해 preferExternal 옵션을 줘서 실제로 외부 메모리에 설치가 되었는지 확인해보자 MainActivity.java package com.example.ch18_external; import android.app.Activity; import android.os.Bundle; import android.v..

Objective C - 세터(setter)와 게터(getter) 자동 생성 및 클래스를 인자로 넘기기

Fraction.h 파일에서 멤버 변수에 @property를 지정해주면 자동으로 세터 함수와 게터 함수가 생성된다. Fraction.m파일에서는 @synthesize 를 멤버변수에 해줘야함.. Fraction.h #import @interface Fraction : NSObject //아래와 같이 하면 자동으로 세터(setter)와 게터(getter)가 생성된다. @property int numerator, denominator; -(void) print; -(void) setTo: (int) n over: (int) d; -(double) convertToNum; -(void) add: (Fraction *) f; -(void) reduce; @end Fraction.m #import "Fraction..

Objective C - 인터페이스와 구현파일 나누기

위와 같이 Fraction 클래스부분과 메인 부분을 나눈다. 다음은 인터페이스부분인 Fraction.h 이다. #import //Fraction 클래스 @interface Fraction : NSObject -(void) print; -(void) setNumerator: (int) n; -(void) setDenominator: (int) d; -(int) numerator; -(int) denominator; -(double) convertToNum; @end 다음은 구현부분인 Fraction.m이다. #import "Fraction.h" @implementation Fraction{ int numerator; int denominator; } -(void) print{ NSLog(@"%i%i", n..

안드로이드 - 윈도우 관리자 활용하기

윈도우 관리자는 안드로이드 프레임워크를 구성하는 주요 모듈로 윈도우를 관리한다. 다음의 호출문으로 구할 수 있다. getSystemService(Context.WINDOW_SERVICE) 윈도우 관리는 대부분 시스템 내부에서 알아서 수행되므로 공개된 기능은 많지 않다. 다음 메소드는 윈도우가 실행되는 화면에 대한 정보를 구한다. Display getDefaultDisplay() Display 클래스는 장비의 화면 폭이나 높이, 방향, 갱신 주기 등의 정보를 제공한다. 다음 메소드는 ViewManager 인터페이스로부터 상속받은 것이며 윈도우에 개별 뷰를 추가하거나 삭제한다. void addView(View view, ViewGroup.LayoutParams params) void removeView(Vi..