<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/selection"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
<!--
@android:id/list = 반드시 java에 ListActivity를 상속(extends) 시켜야됨
android: = Android.R.id.list
http://developer.android.com/reference/android/R.id.html
http://developer.android.com/reference/android/R.id.html#list
(교제112p)
+를 넣으면 생성
+가 없기 때문에 기존에 만들어진것을 호출하여 사용
-->
<ListView
android:id="@android:id/list"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:drawSelectorOnTop="false" />
<!--
android:drawSelectorOnTop="false"
위에 Selector를 그리지 않겠다
default : false
true 하면 글씨가 보이지 않음
layout을 wrap_content로하면 안됨
wrap_content를 쓰면 속으로 에러가 발생(부하)
오직 fill_parent만
-->
</LinearLayout>
package com.commonsware.android.selection;
//ArrayAdapter
import android.app.ListActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.ArrayAdapter;
//main.xml 에 @android:id/list =
//반드시 java에 ListActivity를 상속(extends) 시켜야됨
//ListActivity
public class ListViewDemo extends ListActivity {
//Activity + 이벤트 리스너
TextView selection;
String[] items = { "lorem", "ipsum", "dolor", "sit",
"amet", "consectueuer", "adipiscing", "elit", "morbi", "vel",
"ligula", "vitae", "arcu", "aliquet", "mollis", "etiam", "vel",
"erat", "placerat", "ante", "porttitor", "길다", "많다", "너무 많다",
"너무 길다", };
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//(this = ListViewDemo)
//(simple_list_item_1 텍스트를 표현한 뷰 객체 (생성되어
// 있어서 호출하여사용)) (items= 위에 써놓은 아이템)
setListAdapter(new ArrayAdapter<string>(this,
android.R.layout.simple_list_item_1, items));
//클릭시 데이터 표시하기 위한 객체 생성
selection = (TextView) findViewById(R.id.selection);
}
//position 은 배열처럼 0부터의 값을 갖고있고 순차적으로 밑으로 내려갈수록 번호가 늘어남
//그번호로 ArrayAdapter로 뿌려지게됨
//이벤트 핸들러 ,리스너는 ListActivity가 가지고 있음(클래스 형태의 이벤트 리스너 역할)
//OnListItemClick 재정의하여 사용
//ListView parent = ListView 객체
//View v = 클릭(터치)한 라인의 데이터를 처리하는 View 객체
//int position = 이벤트가 발생한 위치값(0부터 시작)
//long id = ArrayAdapter를 사용할 경우는 position = id
public void onListItemClick(ListView parent, View v, int position, long id) {
selection.setText(items[position]+",position : "+position);
}
}
