안드로이드(Android) ListActivity 를 이용해여 간단한 목록형 화면만들기

 

환경 : Eclipse Mars, Android 4.2.2

 

이번예제는 ListActivity 을 활용하여 리스트 화면을 만드는 것입니다. ListActivity ListView 를 확장하여 구현한 것입니다.안드로이드에서 제공하는 android.R.layout.simple_list_item_1 레이아웃을 이용하여 아주 간단하게 구현한 것과 행을 아이콘에 추가하는 예제를 보도록 하겠습니다.

 

먼저 ListActivity 를 상속받아 아주 간단한 목록형 화면을 만들어 봅니다. ListActivity 클래스는 화면레이아웃을 셋팅할 때 setListAdapter() 함수를 이용하며 인수로 ArrayAdapter 객체를 받습니다. ArrayAdapter 를 만들 때 안드로이드에서 제공하는 android.R.layout.simple_list_item_1 xml 을 사용하였습니다.

 

import android.app.ListActivity;
import android.os.Bundle;
import android.widget.ArrayAdapter;

public class SimpleListViewActivity extends ListActivity {

	String[] DayOfWeek = { "월요일", "화요일", "수요일", 
			"목요일", "금요일", "토요일", "일요일" };

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		//setContentView(R.layout.activity_simple_list_view);
		setListAdapter(new ArrayAdapter<String>(this, 
		          android.R.layout.simple_list_item_1, 
		          DayOfWeek));
	}
}

 

 

안드로이드(Android) ListActivity 를 이용해여 간단한 목록형 화면만들기

 

두번째 예제는 행에 해당하는 부분에 레이아웃을 만들고 아이콘을 추가하여 목록페이지를 만든 것입니다. 행에 해당하는 xml 은 다음과 같습니다. 한행에 해당하는 레이아웃 입니다.

 

activity_simple_list_view.xml

 

<?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="wrap_content"
    android:orientation="horizontal" >

    <ImageView
        android:id="@+id/icon"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/ic_launcher" />

    <TextView
        android:id="@+id/weekofday"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

</LinearLayout>

 

메인에서는 ArrayAdapter 를 구성할 때 위의 한행에 해당하는 xml 과 텍스트가 들어갈 TextView 위젯 아이디를 넘깁니다. 그러면 간단하게 아이콘이 들어간 목록형 화면을 만들수가 있습니다.

 

import android.app.ListActivity;
import android.os.Bundle;
import android.widget.ArrayAdapter;

public class SimpleListViewActivity extends ListActivity {

	String[] DayOfWeek = { "월요일", "화요일", "수요일", 
			"목요일", "금요일", "토요일", "일요일" };

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		//setContentView(R.layout.activity_simple_list_view);
		setListAdapter(new ArrayAdapter<String>(this, 
				R.layout.activity_simple_list_view, 
				R.id.weekofday,
		        DayOfWeek));
	}
}

 

 

안드로이드(Android) ListActivity 를 이용해여 간단한 목록형 화면만들기

 

마지막으로 행에 대한 클릭이벤트를 구현해 봅니다. 행에 대한 클릭이벤트는 onListItemClick() 함수를 오버라이드 하면 됩니다. 그 함수에서 인수로 넘어오는 position ListView 값으로 선택한 텍스트를 알아 올수가 있습니다.

 

@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
	// TODO Auto-generated method stub
	// super.onListItemClick(l, v, position, id);
	String selection = l.getItemAtPosition(position).toString();
	Toast.makeText(this, selection, Toast.LENGTH_LONG).show();
}

 

그리고 클릭한 행의 텍스트를 메시지로 보여줍니다.

 

안드로이드(Android) ListActivity 를 이용해여 간단한 목록형 화면만들기

Posted by 녹두장군