본문 바로가기

Android Studio/View

(10)
[Android] DataBinding #4 - InverseBindingAdapter + Two-way Binding DataBinding #4 - InverseBindingAdapter + Two-way Binding DataBinding 이전 글 DataBinding #1 - 기본 DataBinding #2 - Observable Object/Field/Collection DataBinding #3 - Event, BindingAdapter InverseBinding ? 데이터 흐름의 방향을 의미 Binding : Model To View (Model -> View) InverseBinding : View To Model (View -> Model) 의미지만 inverseBinding은 Binding의 역할도 포함 Two-way Binding : Binding + InverseBinding의 의미로 사실 Invers..
[Android] DataBinding #3 - Event, BindingAdapter, Conversion DataBinding #3 - Event, BindingAdapter DataBinding 이전 포스트 1. DataBinding #1 - 기본 2. DataBinding #2 - Observable Object/Field/Collection INDEX Event : Basic Event / DataBinding Event BindingAdapter : Basic Attribute / Custom Attribute One-way binding, Two-way binding Converter Event View에서 발생하는 이벤트 처리방법 (기본 Basic / 데이터바인딩 DataBinding) Basic Event Logic / Data Binding Event Logic 비교 Basic Event Lo..
[Android] DataBinding #2 - Observable Object/Field/Collection DataBinding #2 - Observable Object/Field/Collection INDEX DataBinding Observable ? ObservableObject : Observable 인터페이스 구현 POJO (BaseObservable 상속) ObservableField : ObservableFields ObservableCollection : ObservableMap, ObservableList Observable : DataBinding하면 POJO 값을 xml내 변수에 설정하여 xml에서 view가 변수의 값을 이용할 수 있습니다 첫 POJO변수 user를 설정할 때 view들이 user의 값을 사용하여 뷰에 표현을 하는데, 그 이후에 POJO를 수정에도 View에는 반영되지 않..
[Android] DataBinding #1 - 기본 DataBinding #1 - 기본 Index DataBinding ? 사용방법 DataBinding 식 언어 DataBinding ? 기본적으로 앱을 개발할 때, 액티비티에 뷰를 바인딩하여 액티비티가 뷰를 조작하는 방식으로 사용 Button button1 = findViewById(R.id.button1)// View를 바인딩(인스턴스화) Button button2 = findViewById(R.id.button2) ... ... Button button10 = findViewById(R.id.button10) : 뷰를 바인딩하는 findViewById()가 조작할 뷰의 개수만큼 많이 늘어나고, 뷰의 UI Update Logic이 많이 생기면서 Activity가 무거워지고 책임이 늘어나게 됩니다 데이터..
[안드로이드] ListView '리스트뷰' / ViewHolder '뷰홀더' ListView '리스트뷰' 데이터 목록(List)를 세로 방향의 리스트 형태로 나열하여 화면에 보여주는 ViewGroup 중 하나 ViewGroup는 스크롤 기본지원 ListView 사용법 ListView는 3가지의 구성요소로 존재 1) View - 화면에 보여줄 레이아웃 내에 View 객체 2) Item - 화면에 표시할 실질적인 item리스트 (데이터) 3) Adapter - Item리스트(데이터)를 View와 연결해서 뷰(View) 생성 및 관리하는 객체 Item -> Adapter, 아이템(리스트)와 Adapter를 연결하면 Adapter가 View를 생성 Adapter -> ListView, 어답터(Adapter)가 View를 생성해서 ListView에 배치 ListView 구현 1) 보여줄 ..
안드로이드 - Snackbar '스낵바' Snackbar '스낵바' - 간단한 메시지 표현에 사용되는 View, 'Toast / Snackbar' 대표적 2가지 - 외부 라이브러리, '디자인 라이브러리' build.gradle(Module: app) - dependencies 추가 필요 implementation 'com.android.support:design:27.0.0' - Toast와 달리, Action 구현으로 onClick() 메소드 구현이 가능 기본 스낵바 'Default' Snackbar.make(view, "SnackBar Message 기본", Snackbar.LENGTH_SHORT).show(); Toast와 비슷한 구성이지만, Toast는 첫번째 인자로 'Context', Snackbar는 'View' 인자를 받음 커스텀 ..
안드로이드 - Toast '토스트' Toast '토스트' - 스마트폰 화면 잠시 보여졌다 사라지는 View, 간단한 메시지를 보여주는데 사용 - 기본적으로 화면 중앙 하단부에 생성 - Custom으로 위치 모양을 바꿔서 사용 가능 'Default' - 기본 사용 Toast.makeText(this, "Toast Message, 기본", Toast.LENGTH_SHORT).show(); Custom - 커스텀 사용 1) 위치 변경 // Toast 객체 생성 Toast toast = Toast.makeText(this, "Toast Message, Custom", Toast.LENGTH_SHORT); // 위치설정, Gravity - 기준지정(상단,왼쪽 기준 0,0) / xOffset, yOffset - Gravity기준으로 위치 설정 toa..
안드로이드 - InputMethodManager '키보드 제어' KeyBoard 키보드 - 'Soft KeyBoard / Hardware KeyBoard', 키보드로 구분 - 'Soft KeyBoard', 화면에 나오는 가상의 키보드 'InputMethodManager'로 Control 가능 IMM, 'InputMethodManager' - IMM은 생성자로 객체 구현 불가 - SystemService로 구현이 가능 InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); - 키보드 보이기 imm.toggleSoftInput(InputMethodManager.RESULT_SHOWN, InputMethodManager.RESULT_SHOWN); - 키보드 숨기..