반응형



이전 포스트에서는 대량의 데이터가 xml에 있을 때의 ListView 예제였습니다.


이번 예제는 대량의 데이터가 .java 에서 생산된 경우의 예제입니다.


실제로 대다수의 어플을 만들 때 데이터들을 xml에서 미리 만드는 경우보다는

데이터 베이스에 있거나 이번 예제처럼 java 언어에서 직접 만들어지는 경우가 많습니다.


Java에서 ListView 객체에 데이터를 설정할 때는

대량의 데이터를 그에 맞는 적절한 뷰로 자동으로 변환하는 'Adapter' 객체가 필요합니다.

우선 간단한 문자열 데이터의 배열이기에 단순 리스트 형태로 변환하는

ArrayAdapter를 만들어 ListView에 보여주도록 하겠습니다.


간단하니 코드만 소개합니다.


 activity_main.xml

 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

    xmlns:tools="http://schemas.android.com/tools"

    android:layout_width="match_parent"

    android:layout_height="match_parent"

    tools:context="${relativePackage}.${activityClass}" >


    <ListView 

        android:id="@+id/listview"

        android:layout_width="match_parent"

        android:layout_height="200dp"/>


</RelativeLayout>



 

 MainActivity.java

 public class MainActivity extends Activity {

//대량의 문자열 데이터를 저장할 Arraylist 객체 생성

ArrayList<String> mDatas= new ArrayList<String>();

ListView listview; //ListView 참조변수


@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

//문자열 데이터 ArrayList에 추가

mDatas.add("KOREA");

mDatas.add("CANADA");

mDatas.add("FRANCE");

mDatas.add("MEXICO");

mDatas.add("POLAND");

mDatas.add("SAUDI ARABIA");

//ListView가 보여줄 뷰를 만들어내는 Adapter 객체 생성

//ArrayAdapter : 문자열 데이터들을 적절한 iew로 1:1로 만들어서 List형태로 ListView에 제공하는 객체

//첫번째 파라미터 : Context객체 ->MainActivity가 Context를 상속했기 때문에 this로 제공 가능

//두번째 파라미터 : 문자열 데이터를 보여줄 뷰. ListView에 나열되는 하나의 아이템 단위의 뷰 모양

//세번째 파라미터 : adapter가 뷰로 만들어줄 대량의 데이터들

//본 예제에서는 문자열만 하나씩 보여주면 되기 때문에 두번째 파라미터의 뷰 모먕은 Android 시스템에서 제공하는

//기본 Layout xml 파일을 사용함.

ArrayAdapter adapter= new ArrayAdapter(this, android.R.layout.simple_list_item_1, mDatas);

listview= (ListView)findViewById(R.id.listview);

listview.setAdapter(adapter); //위에 만들어진 Adapter를 ListView에 설정 : xml에서 'entries'속성

}

}



결과화면입니다. 스크롤도 확인하도록 ListView 크기보다 데이터 양을 많이 했습니다.


  


반응형

+ Recent posts