ArrayAdapter<String>을 이용해 ListView에 String배열 데이터를 넣고
커스텀뷰를 적용한 사례이다.
리스트뷰의 글자크기나 요소간 간격(item height / element height)도 조절할 수 있다..
listView1은 activity_main.xml에서 배치한 리스트뷰의 아이디이다
소스파일(*.java)에서 ListView객체와 String배열을 정의한다
ListView view = (ListView)findViewById(R.id.listView1);
String[] values = new String[LIST_NUM];
for(int i=0; i<LIST_NUM; i++) {
values[i] = i;
}
그리고 어레이어댑터를 만들어 뷰에 적용.
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.my_text_view, values);
view.setAdapter(adapter);
바로 위의 코드에서 my_text_view는 임의로 이름 붙인 커스텀뷰인데, 이제 이것을 만들어야 한다
프로젝트 경로에서 res\layout(메인액티비티 레이아웃이 있는 폴더)에 새로운 xml 파일을 만든다.
이름은 위 코드에서 쓴 것과 같아야 한다.(여기서는 my_text_view.xml)
실제로 적용했었던 코드를 그대로 옮겨보면,
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/text1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceSmall"
android:gravity="center_vertical"
android:paddingStart="2dip" //패딩(테두리 여백)
android:textSize="21sp" //글자 크기
android:textColor="#EEEEEE" //글자색
android:minHeight="34dp" //리스트 요소 폭
/>
다음과 같은 레아이웃이 적용된 리스트가 표시된다.
(https://play.google.com/store/apps/details?id=com.zetagate.pitchspeed)