티스토리 뷰

본 자료는 숭실대학교 정보통신전자공학부 소속 소모임 BlindC에서 3학년을 대상으로 하는 안드로이드 게임 프로그래밍 스터디 진행을 위하여 작성합니다.

개인의 소중한 창작물이기 때문에 자료의 열람은 자유이고, 소스코드를 긁어갈 수 있도록 우클릭제한이나 기타 제한은 걸어놓지 않았으나, 외부 공개나, 2차 수정등은 자제해주시길 부탁드리며 편의상 반말로 진행하도록 하겠습니다.


1. 개요

우리가 만약 많은양의 데이터, 100만개 정도 되는 데이터를 안드로이드 뷰를 통하여 보여줘야 한다고 가정해보자. (예를들어 사전과 같이) 

이 데이터를 어떻게 보여주면 좋을까? 무식하게 100만개의 데이터가 있으니, 100만개의 텍스트뷰를 만들어서 보여줄 것인가? 당연히 아니다. 이렇게 코드를 짰을때 상당히 많은 자원이 낭비된다. 어차피 100만개의 텍스트뷰를 만들어서 메모리에 올려놓는다고 해도 한 화면에 전부 보여줄수 없다. 보여줄수 있는 것은 기껏해야 10개 정도? 이럴때 사용하는 것이 리스트뷰이다.


보여줄 수 있는 10개의 데이터만 로딩해서 메모리에 올려놓는다. 그리고 스크롤이 내려갈때 보이지 않게 되는 데이터는 메모리에서 지우고, 지운 만큼 새로운 데이터를 메모리에 올리는 식이다. 따라서 데이터 10개만 메모리에 올려놓을 수 있어도 100만개가 되는 데이터를 관리할 수 있게 된다.



그림으로 표현하자면 대략적으로 위와 같다고 할 수 있다. 


<activity_main.xml>

1
2
3
4
5
6
7
    <ListView
        android:id="@+id/list"
        android:layout_below="@id/base"
        android:background="#ffff00"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
    </ListView>
cs

<MainActivity.java>
1
2
        ListView lv = (ListView) findViewById(R.id.list);
        lv.setAdapter(mAdapter);
cs


위와같이 코드로 간단하게 표현이 가능하다.

그런데 기존에 100만개의 데이터가 있다고 했을때, 이 데이터를 리스트뷰에 적용해서 곧바로 사용할 수 있을까?

이번 포스트에서는 리스트뷰에 대한 개요와 동작원리에 대해서 간단하게 알아 보았다. 다음 포스트에서 많은 양의 데이터를 리스트뷰에 적용하는 방법에 대해서 배워보겠다.

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함