Project -> 하나의 워크스페이스
Module -> 곧 한개의 앱
파일 구조
Activity Context 객체
안드로이드에서 가장 흔하게 인자로 전달되는 객체인 context는 뭘까?
https://developer.android.com/reference/android/content/Context
- Application 환경에 대한 전역 정보를 접근하기 위한 인터페이스
- 추상 클래스이며 실제 구현은 Android 시스템에 의해 제공된다.
- Context를 통해 어플리케이션에 특화된 리소스나 클래스에 접근할 수 있다.
- Acitivity실행, Intent 브로드캐스팅 그리고 Intent 수신 등과 같은 응용 프로그램 수준의 작업을 수행하기 위한 API를 호출할 수 있다.
- 안드로이드 시스템에서 제공하는 API를 호출할 수 있다.
=> 이러한 특성들 때문에 안드로이드에서 제공하는 기능을 사용할 때 인자로 컨텍스트 객체를 요구하나보다,,
(어느 액티비티에서 사용하는지 정보를 넘겨 그화면에대한 제어권을 갖기 위해???)
context는 액티비티 컨텍스트와 어플리케이션 컨텍스트로 나뉜다.
이 중 Activity Context 는 activity 내에서 유효하고 액티비티 라이프 사이클과 연결되어 있다.
그러면 액티비티 단위에서 이뤄지는
토스트메세지 나 AlertDialog 출력할때 전달되는 Context는 Activity Context이고 이때 this를 넣어주는 이유도
this 이면 Activity이고 모든 액티비티가 Context를 상속받았기 때문에 가능한것이다.
아무튼 액티비티내에서 메소드를 호출할때 Context type이 인자로 필요하면 this를 전달하면 된다.
메인 액티비티가 Context클래스의 8대손 클래스기 때문이다.
res 폴더는 R클래스로 관리가 된다.
그래서 레이아웃 상의 ui 자원들의 id참조할때 R 클래스 내부에 id정적필드를 가지고 있기 때문에
'R.id.아이디' 이런식으로 참조하는거다.
View는 모든 ui의 부모타입이다
모든 UI는 클래스로 관리되고 있고 View를 부모타입으로 상속받고 있다.
레이아웃상의 객체들은 우리가 생성하지 않는다
직접 생성할 수 도 있지만
findViewById(R.id.아이디); 하면 xml에 만들어진 ui객체가 내부적으로 생성되고
이를 참조해오는 방식이다.
'Android' 카테고리의 다른 글
SharedPreferences (0) | 2021.09.07 |
---|---|
Android layout ) constraintLayout 속성 (0) | 2021.09.05 |
명시적 Intent 로 Activity 시작 (0) | 2021.08.23 |
Android layout ) resource활용해서 글씨 써주기 외 (0) | 2021.08.22 |
Activity 소개와 레이아웃 인플레이션 (0) | 2021.08.14 |