한 화면 이상의 데이터를 보여주기 위해서는 스크롤 뷰를 사용할 수 있습니다.
하지만 스크롤 뷰는 한번에 모든 데이터를 로딩 하기에 전화번호 혹은 사진 첩과 같은 데이터를 그대로
자식 뷰로 설정하면 메모리 오버플로우가 발생할 수 있습니다. ( 스크롤 뷰 - 자식 뷰는 오직 하나만)
그렇기에 이럴때는 리스튜 뷰를 사용해야 합니다.
리스트 뷰는 화면에 보이는 데이터만 메모리에 로딩후 처리하기 때문에 안정적인 구현이 가능합니다.
이때 리스트뷰 와 전화번호부 등의 데이터를 연결해주는 역할을 하는 것이
바로 어답터 이다.
표식화 하자면 하기처럼 설명할 수 있다.
전화번호 데이터 <--- 어답터 ---> 리스트 뷰
가장 기본적인 텍스트 정보만 가지는 리스트뷰를 구현 해 보겠습니다.
1. 화면 구성.
레이아웃에는 리스트 뷰 만 배치합니다. ( 참고로 리스트 뷰도 데이터가 많아짐에 따라 스크롤이 생성됩니다)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<ListView
android:id="@+id/listView"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
|
cs |
2. 데이터 만들기.
가상의 폰 번호 100개를 만들어 보겠습니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
|
public class MainActivity extends AppCompatActivity {
ListView listView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//데이터 준비
ArrayList<String> phoneData = new ArrayList<>();
for(int i=0; i < 100; i++){
phoneData.add("010-111-111" + i);
}
|
cs |
String 형을 담을 수 있는 ArrayList 에 가상 폰번호 100개를 저장합니다.
리스트 뷰 실험을 위한 데이터를 완성했습니다.
3. 어댑터 만들기
안드로이드에서 기본으로 제공하는 기본 어댑터를 만듭니다.
텍스트만 나타낼 수 있는 기본 어댑터 타입입니다. ( 두번째 인자)
세번째 인자에는 데이터를 입력합니다.
1
2
3
|
//안드로이드 제공 기본 어댑터 준비
ArrayAdapter<String> adapter =
new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, phoneData); |
cs |
4. 뷰에 어답터 연결.
1
2
3
|
//뷰에 아답터 연결.
listView = (ListView)findViewById(R.id.listView);
listView.setAdapter(adapter);
|
cs |
하기 처럼, 폰번호 데이터가
리스트 뷰로 잘 표현되는 것을 확인 할 수 있습니다.
하지만, 우리는 리스트 뷰를 구성할때 사진 및 추가 정보가 표시되기를 원합니다.
개발자가 직접구현하는 어탭터는 다음 포스팅에서
다루어 보겠습니다. 감사합니다.
'앱 만들기 > 안드로이드 study' 카테고리의 다른 글
커스텀 리스트 뷰 만들기(직접 리스트 뷰 설계하기) (2) | 2021.04.21 |
---|---|
리스트뷰 클릭 이벤트 구현하기 (1) | 2021.04.16 |
안드로이드 Activity 라이프사이클 (2) | 2021.04.13 |
레이아웃 편집기 마법봉 사용법 (4) | 2021.04.05 |
Logcat 디버그 트레이스 확인하는 방법 (1) | 2021.04.04 |
댓글