반응형
Notice
Recent Posts
Recent Comments
Link
NOW OR NEVER
[Android] UI 요소 - View 2 본문
반응형
View
Container
Card view
- 한 화면 내에서 묶어주는 것
- recycler view로 사용 시 많이 사용
- 주요 속성
- card elevation : 카드 뷰의 그림자 정도
- card corner radius : 카드 뷰 꼭지점 둥근 정도
- content padding : 카드 뷰 내부 여백
widget
calendar view
- 안드로이드에서는 잘 사용하지 않는다 : 날짜를 고르는 기능만 있고 크기가 너무 커 화면을 많이 차지해서 잘 사용하지 않는다.
- 안드로이드에서는 이거 말고 dialog에서 날짜 고를 수 있는 것을 주로 쓴다
search view
- edit text와 동일한 것
adapter view
- 개발자가 결정해서 지정해야지만(customize) 화면을 구성해서 보여주는 ui요소들, 즉 스스로 결정할 수 없어 화면을 보여 줄 수 없는 view들
- adapter class : 개발자가 설정한 다양한 데이터들을 관리하는 Class, 해당 class 를 보고 화면을 구성하게 된다.
- arrayAdapter : 문자열 하나를 세팅할 때 사용(this, 어떠한 문자열 설정할 것인지)
- 항목 뷰 하나에서 값을 설정할 뷰가 TextView 하나라면 ArrayAdapter
- 다수의 다양한 뷰라면 SimpleAdapterList View
Legacy
- 가장 대표적인 adapter view
- 가로와 세로가 몇 줄인지 전체가 몇 개인지, 요소 별로 구성이 어떻게 보이는 지 등을 개발자가 결정해서 지정해야지만 화면을 구성해서 보여줄 수 있다
- 화면의 대부분을 차지하게 해야지 보기 편하다.
- 데이터 수, 어떠한 모양, 들어가는 데이터 등 지정
- 코드 구성 단계
- 1.구성하기 위해 필요한 데이터을 담을 변수 선언 : arrayOf(), mutableListOf<>() 등 사용 가능
- 2.Adapter 생성
- ArrayAdapter : 칸 하나에 문자열 하나만 사용하는 경우
- val 어댑터이름 = 어댑터종류<자료형>(Context, 항목하나를 구성하기 위해 사용할 레이아웃, 텍스트뷰에 채워줄 자료형 배열)
- adapter 생성 시 listView
// R.layout.simple_list_item_1 이라고 지정된 레이아웃 안에 있는 text1 val adapter = ArrayAdapter<String>( this, R.layout.simple_list_item_1, data1 )
- 3.adapter 설정 : listView아이디.run 안에서 setAdapter(생성한 adapter 이름 작성) 으로 설정 / listView아이디.adapter 으로 설정
- 4.리스너 구현
- setOnItemClickListener { parent, view, position, id -> 실행문} : ListView의 항목 하나를 선택하면 동작하는 리스너
- position : 사용자가 터치한 항목의 순서값(0부터 1씩 증가)
- setOnItemClickListener { parent, view, position, id -> 실행문} : ListView의 항목 하나를 선택하면 동작하는 리스너
- System.currentTimeMills : 중복되지 않은 값이 필요 할 때 사용
- listViewID.adapter as ArrayAdapter으로 adapter 형변환 후 .notifyDataSetChanged() : listview의 adapter을 통해 갱신 요청
- listView의 항목 하나를 정의하는 원리
- 1.SimpleAdapter에 설정하는 ArrayList 내의 HashMap의 개수 만큼 항목이 만들어진다.
- 2.각 항목을 개별적으로 구성하여 보여준다.
- 3.항목 하나를 구성하기 위해 항목 번째의 HashMap을 추출한다.
- 4.HashMap에 있는 데이터를 keys 배열에 들어있는 이름의 순서대로 추출한다.
- 5.ids 배열에 설정되어 있는 View의 ID 순서대로 데이터를 설정한다.
- simpleAdapter에 필요한 데이터를 구성 후 리스트뷰로 보여주는 것
button
Floating Action Button
- 그림자가 있는 버튼
- 우측 하단에 놓고 많이 쓴다
- 주로 constraint layout에 배치해서 쓴다.
- 클릭 리스너는 button 클릭 시 나오는 리스너와 같다(setOnClickListener)
context
- 안드로이드에서만 사용하는 언어는 아니라 개발 관련 언어에서 다 이런 용어를 사용
- 다양한 용도로 사용하기에 딱 뭐라고 말할 순 없다
- 단말기 내부 안에 어떠한 작업을 하기 위한 필요한 정보를 관리하는 요소들을 통칭(정보 담고 있는 그것을 가져와서 사용하는 것이다.)
- 단말기 종류도 다르고 설정도 다르기에 그 내부시스템에 있는 정보를 가져오는 작업이 필요하다.
- 안드로이드는 시스템이나 애플리케이션과 관련된 정보를 가지고 있다.
- baseContext : 기본적인 context
- applicationContext : 데이터 관리에서 중요한 context
- MainActivity는 context를 상속받고 있다.
etc
- 인터페이스는 깃 허브(https://github.com/)에서%EC%97%90%EC%84%9C) 검색해서 보고 참고해도 좋다. ( android 찾아볼이름 -> 이렇게 검색해보기) ex) android view, android PickerView
- 안드로이드 자체에서는 recycler view를 사용하는 것을 권장한다.
- ui는 만들어 쓰지 말고 가져다 쓰고 기능 중심으로 개발하는 것을 권장한다.
- this@
- this 선언 시 {}를 선언한 객체 말고 다른 activity 객체로 하고 싶을 때 @ 사용
- reflection의 일종
- this@MainActivity : mainActivity 객체 의미
- .removeLast() : list 마지막 값 제거
- view를 여러 개를 만들 순 있지만 data를 설정할 수 있는 view는 딱 한 개이다.
- sample data 사용 금지 : 코드가 들어가야 하는 이미지라 임시 이미지로 적합하지 않음
- 여러 화면 일 경우
- hashMap들을 가지고 있는 리스트 생성
- hashMap 하나 안에는 항목 하나를 구현하기 위해 들어가는 데이터
- LogCat
- 파란색이 작업하고 있는 파일
- arrayOutOfIndexError : 배열 인덱스 넘어섰을 때 에러
- 파란색이 작업하고 있는 파일
- sdk file not found 해결
- gradle scripts - local.properties 에서 sdk.dir = sdk 파일 주소 로 설정
- 맥의 경우 sdk 파일 주소 : /Users/사용자 이름/Library/Android/sdk
'Android' 카테고리의 다른 글
[Android] 권한 (0) | 2023.06.15 |
---|---|
[Android] View3 - Adapter (0) | 2023.06.14 |
[Android] Compound Component (0) | 2023.06.12 |
[Android] UI 요소 - View (0) | 2023.06.11 |
[Android] LogCat & UI 요소 - Widget (0) | 2023.06.08 |
Comments