ListActivity를 상속받아 만들면 아래와 같이 메이 화면에 List가 뜨고, 그 List를 선택하면 또 다른 리스트나 프로그램이 실행되게 하는, 유용한 프로그램을 짤 수 있다. Android사이트에서 샘플로 주어지는 예제들이 이러한 형태로 작성되어 있다.
* Android샘플로 주어지는 ApiDemos실행화면(ListActivity사용됨)
참조: ApiDemo APK 파일:
여기서는 ListActivity를 이용하여 4개의 아이템이 리스트에 표출되고, 이 아이템들을 눌렀을 때, 해당 아이템의 정보를 Textview에 표출하는, 간단한 프로그램을 만들어 보겠다.
1. 프로젝트 생성
- Eclipse에서 File-New-Other한 후 Android Application Project 선택
- Application Name: Android_ListActivity
- 나머지는 Default값 그대로
2. activity_main.xml
res/layout에 있는 activity_main.xml에 대해 다음과 같이 수정한다.
- Graphical Layout에서 TextView와 Composite-ListView를 추가 한다.
- activity_main.xml파일을 아래와 같이 되도록 수정
<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/output"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="#758AA7"
android:padding="1px"
android:text="Click"
android:textColor="#ffffff" />
<ListView
android:id="@+id/@android:list"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
</ListView>
</LinearLayout>
3. MainActivity 수정
자동으로 생성된 MainActivity를 아래와 같은 내용이 되도록 수정한다.
import android.os.Bundle; import android.app.Activity; import android.app.ListActivity; import android.view.Menu; import android.view.View; import android.widget.ArrayAdapter; import android.widget.ListView; import android.widget.TextView; public class MainActivity extends ListActivity { TextView content; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); content = (TextView)findViewById(R.id.output); String[] values = {"Item0","Item1","Item2","Item3"}; //ArrayAdapter(Context context, int resource, T[] objects) //ArrayAdapter설명: // http://developer.android.com/reference/android/widget/ArrayAdapter.html ArrayAdapter<String> adapter = new ArrayAdapter<String> (this,android.R.layout.simple_list_item_1,values); //assign adapter to List setListAdapter(adapter); } //List의 item을 클릭하면, position과 string이 textView에 표출되게. @Override protected void onListItemClick(ListView l, View v, int position, long id){ super.onListItemClick(l, v, position, id); String itemValue = (String)l.getItemAtPosition(position); content.setText("Clicked Position: "+position+"\n"+"Clicked item: "+itemValue); } }
4. Run
Package Explorer에서 마우스 우클릭해서 Run As - Run Configurations...
'New launch configurations'아이콘을 누르고,
- Name: ListActivity예제
- 'Browse...'버튼을 눌러 Android_ListActivity프로젝트를 선택
- 'Target'탭을 누르고, 'Always prompt to pick devie'선택
- 나머지는 그대로 놔두고, Apply버튼 누른 후, Run
- item들을 눌러보면, 해당 item의 position과 string이 표출됨을 알 수 있다.
Eclipse프로젝트로 되어있는 Full 소스(컴파일은 새로해야 함): Android_ListActivity.zip
APK파일: Android_ListActivity.apk
-끝-
'프로그래밍 > 안드로이드 앱 ' 카테고리의 다른 글
009. Examples - 예제 리스트를 보여주고 실행하는 구조만들기 (0) | 2013.12.17 |
---|---|
007. Game - 두더지잡기 (0) | 2013.12.16 |
006. Example04_SurfaceView (0) | 2013.11.12 |
005. Example03_Canvas (0) | 2013.11.12 |
004. Example02_Activity와 화면이동 (0) | 2013.11.11 |