안드로이드(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)); } }
▼ 두번째 예제는 행에 해당하는 부분에 레이아웃을 만들고 아이콘을 추가하여 목록페이지를 만든 것입니다. 행에 해당하는 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)); } }
▼ 마지막으로 행에 대한 클릭이벤트를 구현해 봅니다. 행에 대한 클릭이벤트는 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) raw 폴더에 있는 Text 파일 읽어 오기 (1) | 2015.01.08 |
---|---|
안드로이드(Android) Chronometer 사용하여 시간측정을 위한 타이머 만들기 (1) | 2015.01.05 |
안드로이드(Android) Chronometer, OnChronometerTickListener 통해 시간알아오기 (2) | 2015.01.04 |
안드로이드(Android) 웹페이지에서 이미지 다운로드 구현 (0) | 2015.01.01 |
안드로이드(Android) 백그라운드 스레드 소스 Runnable 이용해 구현 (0) | 2014.12.26 |
안드로이드(Android) 백그라운드에서 Handler 를 통해 UI 변경 (1) | 2014.12.23 |
안드로이드(Android) This Handler class should be static or leaks might occur 해결 (6) | 2014.12.21 |
안드로이드(Android) Android.graphics.Color 에서 제공하는 컬러보기 샘플구현 (0) | 2014.12.17 |