안드로이드의 ListView 에 출력할 아이템을 개발자가 임의로 설정하는 예
ListView의 한 행을 차지하는 아이템에 이미지와 문자열이 출력되도록 설정한 예
layout/main.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <TextView android:id="@+id/textView1" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="#cccccc" android:text="" /> <ListView android:id="@+id/listView1" android:layout_width="match_parent" android:layout_height="wrap_content" > </ListView> </LinearLayout>
layout/row.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" > <ImageView android:id="@+id/imageView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/ic_launcher" /> <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="TextView" /> </LinearLayout>
TestActivity.java
package com.example.androidapp; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.ArrayAdapter; import android.widget.ListView; import android.widget.TextView; public class TestActivity extends Activity implements OnItemClickListener { String [] name = {"강호동", "이수근", "홍명보", "박근혜", "안철수", "박지성" }; ArrayAdapter<String> adapter; TextView tv; ListView listView; public void onCreate(Bundle icicle) { super.onCreate(icicle); setContentView(R.layout.main); adapter = new ArrayAdapter<String>( this, R.layout.row, R.id.textView1, name); listView = (ListView) findViewById(R.id.listView1); listView.setAdapter(adapter); listView.setOnItemClickListener(this); tv = (TextView) findViewById(R.id.textView1); } public void onItemClick(AdapterView<?> parent, View v, int position, long id) { TextView tv = (TextView) v.findViewById(R.id.textView1); this.tv.setText(tv.getText()); } }