본문 바로가기

카테고리 없음

뷰 바인딩, 어댑터 뷰,

뷰 바인딩

 

사용 방법 

그래들에 작성

buildFeatures{
    viewBinding = true
}

사용 예시

binding = ActivityMainBinding.inflate(layoutInflater)
val view = binding.root
setContentView(view)

 

View Binding  findViewById 차이점

 

1. null 안정성 차이 

뷰 바인딩을 하면 앱이 레아아웃의 각 뷰를 직접 참조할 수 있게 해주는 코드를 자동으로 생성해주어 null값으로 인한 오류 즉 화면에 나타나지 않았는데 뷰를 사용하려할 때 생기는 문제들을 예방해 줍니다

 

2. 타입 안정성

xml파일에서 정의된 뷰의 타입과 자동 생성된 바인딩 클래스의 필드 타입이 항상 일치하기에 타입 오류를 방지합니다.

 

 

 

어댑터 뷰

여러개의 항목을 다양한 형식으로 나열하고 선택할 수 있는 기능을 제공하는 뷰

데이터를 직접 관리하지 않고 어댑터라는 객체로부터 공급 받습니다.

 

데이터 원본 어댑터 설정 -> 어댑터의 getCount란 메소드를 통해 어댑터 데이터 항목 개수 반환 -> getView를 통해 얻어와 화면에 표시

 

사용자가 특정 위치 항목 선택시 선택된 항목의 getItem,getItemid,getView 메소드를 억어와 선택 이벤트 처리에 넘겨줍니다

 

 

어댑터 종류

1.BaseAdapter : 어댑터 클래스 공통 구현,사용자 정의 어댑터 구현시 사용

2.ArratAdapter : 객체 배열이나 리소스에 정의된 배열로부터 데이터를 공급받음

3.CursorAdepter : 데이터 베이스로부터 데이터를 공급 받음 

4.SimpeAdepter : 데이터를 Map(키,값)의 리스트로 관리, 데이터XML파일에 정의된 뷰에 대응시키는 어댑터

  1. 리스트 뷰 : 항목을 수직으로 나열시키는 방식
    1. 프로젝트 생성
    2. 메인화면 ListView 위젯에 정의(XML코드)
    3. 어댑터 객체 생성
    4. ListView 객체에 어댑터 연결
<ListView
    android:id="@+id/ListView"
    android:layout_width="729dp"
    android:layout_height="409dp"
    tools:layout_editor_absoluteX="1dp"
    tools:layout_editor_absoluteY="1dp" />

 

val items = arrayOf<String?>("item1", "item2", "item3", "item4", "item5", "item6", "item7", "item8", "item5", "item6", "item7", "item8", "item5", "item6", "item7", "item8", "item5", "item6",  "item7", "item8")
val adapter = ArrayAdapter(this, R.layout.simple_list_item_1, items)

binding.ListView.adapter = adapter

 

 

  1. 그리드 뷰 : 항목을 격자 형태로 나열시키는 방
    1. 프로젝트 생성
    2. 메인화면 GridView 위젯에 정의(XML코드)
    3. ArratAdapter객체를 생성하고 GridView객체에 연결
  • android:columnWidth=“100dp” : 그리드 항목 하나의 폭을 100dp로 설정
  • android:numColumns=“auto_fit”: 열의 폭과 화면 폭을 바탕으로 자동 계산
  • android:verticalSpacing: 항목 간의 간격 설정
  • android:stretchMode=“columnWidth”: 열 내부의 여백을 폭에 맞게 채움

 

 

  1. 리사이클 뷰 : 리스트 형태의 데이터를 표시하는데 사용되는 위젯
    1. ViewHolder : 화면에 표시될 데이터나 아이템들을 저장하는 역할 - 재활용 하기위해 필

 

 

리스트뷰와 리사이클 뷰 차이점

리스트뷰 : 스크롤할 때 마다 위에 아이템이 삭제되고 아래 생성 반복

리사이클 뷰 : 사용자가 스크롤시 위에 아이템은 아래로 이동 되며 재사용 listView 단점 보안 

728x90