본문 바로가기

안드로이드

(13)
액티비티 상태 저장 화면 회전하는 경우 / 다른 액티비티로 화면이 전환될 때 데이터를 잃지 않기 위해선 상태 저장 방법을 알아야 된다. onPause() → onSaveInstanceState() → onStop() → onDestroy() 함수가 호출되며 액티비티가 종료되고 다시 액티비티를 시작하면서 onCreate() → onStart() → onRestoreInstanceState() → onResume() 함수가 실행된다. 액티비티의 상태 관리를 위해 데이터를 저장, 복원 시 사용되는 함수 onCreate(), onRestoreInstanceState() , onSaveInstanceState() 이다. 1) onSaveInstanceState() 매개변수가 2개인 함수가 API Level 21 부터 추가되었음 매개..
액티비티 생명주기 1. 활성 상태 액티비티가 사용자 화면에 보이고, 포커스를 가지고 있어서 사용자 이벤트에 반응할 수 있는 상태 onCreate() → onStart → onResume() 함수가 호출되면서 활성 상태가 된다. onResume() 호출 전까지 액티비티 화면 내용을 출력해 주어야 한다. setContentView() 함수에서 출력한 내용이, onResume() 이후에 화면에 출력되는데 setContentView() 는 이전 화면을 지우면서 새로운 내용을 출력하는 함수이기 때문에 화면에 출력되는 건 맨 마지막에 호출된 내용이다. 만약, 기본 화면을 지우지 않고, 그 위에 함께 출력하려면 addContentView() 함수를 이용하면 된다. 2. 일시 정지 상태 액티비티가 여전히 화면에 보이지만, 포커스를 잃은..
Adapter 와 Adapter View AdapterView 에 항목 나열 화면에 데이터가 나오려면 Adapter 클래스( 뷰는 아니지만 AdapterView 를 만들어주는 클래스 ) AdapterView 들은 AdapterView 의 서브 클래스들이며 ListView, GridView, Spinner 등이 대표적인 클래스 * Context : 애플리케이션 레벨에서 시스템 레벨의 기능 및 정보를 이요해야 할 때 , 이용하는 객체 1. ArrayAdapter 한 항목에 문자열 데이터 하나를 순서대로 나열 시 사용 ArrayList 2. SimpleAdapter 문자열 여러 개 나열 시 사용 ArrayList 3. CursorAdapter DBMS 프로그램의 select 결과값을 그대로 이용해 항목을 구성 4. Custom Adapter View..
이벤트 모델 1. 델리게이션 이벤트 모델 - 뷰에서 발생하는 이벤트를 처리하기 위한 모델 이벤트 프로그램 구조 이벤트 소스와 이벤트 핸들러를 리스너로 연결하여 처리하는 구조 이벤트 소스에서 이벤트가 발생하는 순간 등록된 이벤트 핸들러를 실행해주는 구조 * Gof 디자인 패턴의 옵저버 패턴이다. // A1 클래스의 객체를 생성하는 구문 A1 a = new A1(); // A1 을 상속받은 이름 없는 하위 클래스를 선언하고, // A1 이 인터페이스면 인터페이스를 구현한 이름 없는 클래스를 선언하고, // 선언하자마자 객체를 생성한 코드이다. // 이 구조는, 이벤트 코드를 보다 보면 자주 보이는 형태이다. A1 a = new A1() { void a() { } }; 2. 하이어라키 이벤트 모델 - 액티비티에서 발생하는..
빌더 패턴 안드로이드에서 몇몇 클래스는 Builder 로 생성하도록 강제한다. 항상 똑같이 생성해야 한다면 new 설정을 어떻게 하느냐에 따라 결과가 달라지는 객체라면 Builder 클래스를 이용해서 생성한다. 대표적으로 AlertDialog 클래스가 있다.
뷰 아키텍처 1. 뷰의 계층 구조 View : 안드로이드 뷰 클래스의 최상위 클래스, 액티비티 출력 클래스는 모두 View 의 서브 클래스 ViewGroup : 뷰의 서브 클래스여서 화면에는 출력됨. 뷰 그룹 자체만의 UI는 없음. 다른 뷰 여러개를 뷰그룹에 포함하여 제어하기 위한 목적 TextView : 특정 UI를 출력할 목적. 대표적으로 TextView, 이외에도 여러 가지 클래스가 있음. 소프트웨어 모델 : DOM 을 따름. 패턴 : Gof 디자인 패턴의 Composite 패턴 2. 대표적인 뷰 클래스들 1) TextView - text , typeface(폰트), textStyle , textColor , textSize, autoLink android:text="http://www.google.com a@..
View 의 기초 속성 1. id 속성 필수 속성은 아니지만, 필요할 때 추가 가능 XML에 등록하여 자동으로 생성된 객체를 자바 코드에서 식별할 필요가 있을 때 id 속성 사용 XML 파일로 작성한다고 가정, 뷰 코드를 자바 코드로 직접 생성한 게 아니기 때문에 id가 없으면 객체명을 알 수 없음 android:id="@+id/myText" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="hello"/> 이렇게 지정한 id 값은 해당 앱의 R.java 파일에 등록된다. id 값도 R.java 파일에 등록됨 setContentView() 함수를 호출하면, 레이아웃 XML 파일 내용이 화면에 출력되고, XML에 정의한 객체..
액티비티 - 뷰 구조 액티비티 : 앱의 실행 단위 컴포넌트 , 액티비티만 실행하면 빈 화면만 보인다. 뷰 (뷰 클래스): 액티비티에 버튼 , 문자열, 이미지 등을 출력해주어야 한다. 안드로이드 UI 프로그램은 다양한 뷰를 화면에 출력하는 구조이다. 액티비티에서 뷰를 출력하려면, setContentView() 함수가 필요하다. public void setContentView(View view) public void setContentView(int layoutResID) 위 2가지 형태로 제공된다. UI 프로그램 작성 방법 1. 자바 코드로 화면 구성 자바 코드로 모든 뷰 직접 생성 메서드를 이용하여 뷰 설정을 일일이 지정하는 방법 2. 레이아웃 xml 파일 작성 UI 를 레이아웃 xml 로 작성하여 자바 코드 부분을 그만큼 ..
MainActivity.java 기본 중 기본 액티비티 클래스 : Activity 를 상속받아 작성 AppCompatActivity : Activity 의 서브 클래스 액티비티가 실행되면 onCreate() 함수가 호출 됨. 이 함수의 setContentView() 함수가 화면 출력 함수 R.layout.activity_main 을 매개변수로 하였으므로 res/layout/activity_main.xml 구성대로 화면이 출력됨.
AndroidManifest.xml 앱의 메인 환경 파일 앱이 스마트폰에서 동작할 때도 이 파일에 정의된 대로 동작 package="com.example.user.androidlab" 앱의 식별자 정보이다. 이 정보로 앱을 식별 gradle 파일에 설정된 applicationId 의 값과 같다. 앱의 구성요소를 등록하기 위한 태그 개발자 클래스이지만, 생명주기를 안드로이드 시스템이 관리하므로 환경 파일에 등록해주어야 한다. 컴포넌트 클래스들은 하위 태그로 등록하면 됨. android:icon="@mipmap/ic_launcher" , android:icon="@drawable/ic_tv_app" 태그에 등록된 속성 자바 코드로 이야기하면, R.mipmap.ic_launcher 이다. R.java 파일에 등록된 상수 변수값을 XML 에서는 ..