●리스트뷰(ListView)
- 여러개의 목록을 보여주는 위젯이다.
- 리스트뷰에 보여줄 데이터는 리스트뷰에 직접 입력하는 것이 아니라, adapter 객체에 담고, 그 adapter객체를 리스트뷰에 넣어줘야한다.
- adapter객체에 담을 데이터는 xml에서 불러올수도 있고 자바에서 넣어줄수도 있다.
- ListView처럼 다량의 데이터를 처리하는 위젯은 어댑터라는 중간 객체에 의존하게 된다. 이유는 디자인에 불과한 ListView가 직접 데이터를 제어하게 되면, 유지보수성이 떨어지게 되기 때문이다.
- 안드로이드에서는 ListView처럼 다수의 데이터를 처리하는 위젯이 여러개 있다. 아래 4개 위젯 모두 데이터를 직접 제어하지 않고 어댑터 객체를 이용한다. 그래서 어댑터뷰라고 부른다.
●리스트뷰 예제1
- 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/lv" android:layout_width="match_parent" android:layout_height="wrap_content"> </ListView>
</RelativeLayout> |
- MainActivity.java
package com.example.day0314; import java.util.ArrayList; import android.app.Activity; import android.os.Bundle; import android.widget.ArrayAdapter; import android.widget.ListView; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main);
//xml로 존재하는 데이터를 ListView에 적용 ListView lv = (ListView)findViewById(R.id.lv);
//어댑터 선언 //adapter의 자식 객체이며, 데이터가 List계역일때 사용하기 좋음
//xml에서 데이터 가져오기 ArrayAdapter adapter1 = ArrayAdapter.createFromResource(this, R.array.number, android.R.layout.simple_list_item_1);
//자바코드내에서 List에 데이터를 담아 어댑터로 제어 ArrayList list = new ArrayList(); list.add("리스트1"); list.add("리스트2"); list.add("리스트3"); list.add("리스트4");
//android.R.layout.simple_list_item_1는 안드로이드에서 제공해주는 폼이다. ArrayAdapter adapter2 = new ArrayAdapter(this, android.R.layout.simple_list_item_1, list);
//android.R.layout.simple_list_item_1 대신 개발자가 만든 xml을 사용해도 된다. ArrayAdapter adapter3 = new ArrayAdapter(this, R.layout.my_list_item_1, list);
//리스트뷰에 어댑터 적용 //lv.setAdapter(adapter1); //lv.setAdapter(adapter2); lv.setAdapter(adapter3);
} }
|
- my_list_item_1.xml
(사용자가 만들어준 ListView 양식이다. 안드로이드에서 제공해주는 양식을 사용해도 되고 사용자가 만들어서 사용해도 된다.)
<?xml version="1.0" encoding="utf-8"?> <TextView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/TextView1" android:layout_width="match_parent" android:layout_height="wrap_content" android:textSize="30dp" android:textColor="#aec7e1" android:background="#cae682" /> |
'프로그래밍 > 안드로이드' 카테고리의 다른 글
안드로이드 커스텀 버튼 만들기 (0) | 2015.03.17 |
---|---|
안드로이드 xml레이아웃 include (0) | 2015.03.17 |
안드로이드 스피너(spinner) (0) | 2015.03.17 |
안드로이드 인텐트(intent) (0) | 2015.03.10 |
안드로이드 버튼 클릭, 이미지 변경 (0) | 2015.03.10 |
댓글