note

ListActivity ArrayAdapter 본문

Android/기본

ListActivity ArrayAdapter

투한 2012. 1. 9. 11:29
<?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(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);
	}
}



'Android > 기본' 카테고리의 다른 글

스핀 컨트롤 Spinner  (0) 2012.01.09
ListActivity 사용  (0) 2012.01.09
Android Table Layout  (0) 2012.01.06
Android Frame Layout  (0) 2012.01.06
Android Relative Layout  (0) 2012.01.06