Text Changed Listener • 안드로이드의 EditText 위젯을 사용할 경우, EditText에서 입력되거나 변경되는 텍스트를 Text Changed Listener를 통해 코틀린으로 받아올 수 있다. • 받아온 텍스트를 데이터로 활용할 수 있다. • 변경되는 텍스트를 실시간으로 확인하여 올바른 형식으로 텍스트를 입력했는지 등을 확인할 수 있다. * EditText 위젯을 다룬 게시글 : [📱Android/🔍UI] - 14. EditText [Android/UI] 14. EditText EditText • 사용자가 텍스트를 직접 입력할 수 있는 위젯 • 입력한 값을 저장하여 데이터로 사용할 수 있다. ex) Id, Password, 개인정보 등 • 속성 - text : 미리 내용을 채워넣을..
EditText • 사용자가 텍스트를 직접 입력할 수 있는 위젯 • 입력한 값을 저장하여 데이터로 사용할 수 있다. ex) Id, Password, 개인정보 등 • 속성 - text : 미리 내용을 채워넣을 수 있다. - hint : 연한 글씨로 어떤 내용을 적어야 하는 지에 대한 힌트를 표시할 수 있다. 클릭하며 사라진다. - inputType : 입력할 텍스트의 타입을 지정할 수 있다. ex) text, number, textPassword, phone 등 - privateImeOptions="defaultInputmode=korean" : 기본 키보드 한글로. - singleLine : 한 줄 입력 여부 - 다양한 속성이 있다. 필요한 속성을 검색해서 쓰면 된다. 이 글은 패스트 캠퍼스 Androi..
Activity Stack • 액티비티를 여러 개 호출 시 스택이 쌓임. • 스택에서 맨 위에 있는 액티비티가 화면에 보임. • 액티비티 스택을 관리하는 법이 여러 개 있음. * 액티비티 스택은 되도록이면 건들지 않는 것이 좋다. - 복잡한 부분이기 때문에 꼬일 수 있다. - 사용자들도 스마트 폰에 익숙해지면서 예상하는 동작이 있는데, 예상을 벗어나면 불편하다. - 안드로이드 공식 문서에서도 강조하고 있다. -> 액티비티 스택은 분명한 의도를 가지고 적용해야 한다. Activity Stack 관리 1. AndroidManifest의 launchMode 이용 • • standard - 기본 값 - 후입선출(LIFO, Last In First Out) - 호출하는 모든 액티비티가 위에 쌓인다. • singl..
Intent • 의도, 의사가 담긴 메시징 객체 • 다른 컴포넌트에게 작업을 요청할 때, 어떠한 작업을 요청하는지, 누구에게 요청하는지 등에 대한 정보를 인텐트 객체에 담아 전달한다. • 데이터를 담아 전달할 수 있다. ex) 010-0000-0000(데이터)로 전화해줘. • 요청한 작업의 결과를 받을 수 있다. Intent 종류 1. 명시적 인텐트 (Explicit Intent) • 호출 대상을 명시하는 경우 ex) ㅇㅇ앱으로 사진 찍을거야 -> ㅇㅇ앱 호출 및 실행 2. 암시적 인텐트 (Implicit Intent) • 호출 대상을 명시하지 않는 경우 ex) 사진 찍을거야 -> 사진 찍을 수 있는 모든 앱 호출 • 인텐트 필터 (Intent-filter) - 매니페스트 파일에 인텐트 필터를 등록할 수..
Context • 사전적으로는 문맥, 맥락, 전후사정을 의미한다. - 안드로이드에서는 앱의 흐름을 의미 • 애플리케이션나 액티비티의 현재 상태를 나타낸다. • 정보를 얻기 위해 사용한다. • Activity, Application 클래스는 전부 Context를 상속받아 구체화된 것이다. -> Context 타입이 필요한 자리에 Activity, Application 클래스를 넣어도 된다. 1. Application Context • 애플리케이션에 하나만 존재 • 애플리케이션이 살아있는 동안 유지 • 애플리케이션의 현재 상태나 정보를 담고있다. • 애플리케이션 전체에서 사용할 정보나 함수를 저장해두기 좋다. ex) 애플리케이션의 현재 액티비티 라이프사이클 상태 확인 - Application Context를..
App Component • 앱 컴포넌트는 Android 앱의 필수적인 기본 구성 요소를 뜻함. • 각 컴포넌트는 시스템이나 사용자가 앱으로 들어갈 수 있는 진입점. • 앱 컴포넌트에는 Activities, Services, Broadcast Receivers, Content Providers가 있다. 1. Activities(액티비티) • 사용자와 상호작용하기 위한 진입점. • 사용자 인터페이스를 포함한 화면 하나를 나타냄. • 한 앱에는 여러 액티비티가 존재할 수 있음. ex) 이메일 앱 -> 받은 이메일 목록, 메일 쓰기, 메일 읽기 • 액티비티는 서로 독립적임. -> 한 액티비티 안에서 다른 액티비티를 만들고 이런 것이 아닌, 독립적인 액티비티를 서로 호출하는 방식 2. Services(서비스) ..
스코프 함수 • 객체 생성 시 사용하는 함수 • 하나의 스코프를 만들어 그 안의 코드들을 실행한다. - 이 스코프 안에서는 객체를 이름없이 바로 접근할 수 있다. • 생성한 객체에 대해 어떠한 동작을 해야할 때 간결하게 사용할 수 있다. - 스코프 함수를 쓰지 않으면 간단한 동작을 할 때도 변수를 만들고, 변수의 이름을 반복해서 사용해야하는 번거로움이 있다. // 스코프 함수 사용하지 않았을 때 val alice = Person("Alice", 20, "Amsterdam") println(alice) alice.moveTo("London") alice.incrementAge() println(alice) // 스코프 함수 사용했을 때 Person("Alice", 20, "Amsterdam").let { ..
뷰 컨트롤 • 사용자와의 상호작용으로 인해서 뷰를 조작하는 방법 • 뷰에 이벤트가 발생했을 때 처리하는 방법 • xml에 존재하는 뷰를 kotlin으로 가져와서 처리할 수 있다. 1. findViewById • xml에 존재하는 뷰를 kotlin으로 가져오는 방법. • findViewById(R.id.아이디) : 해당 아이디의 view를 가져온다. - Id -> xml에서 부여한 view의 id • 그 외에도 view를 가져오는 방법에는 kotlinx, databinding 등이 있다. - kotlinx : 번거로운 findViewById 과정을 생략 가능. 하지만 deprecated -> 가급적으로 사용을 피해야 한다. - databinding : 뷰와 데이터를 묶는 방법. 심화 내용이다. packag..