프로그래밍/안드로이드 앱

008. Example - ListActivity

산을좋아한라쯔 2013. 12. 16. 18:03
반응형

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

 

-끝-

 

 

Android_ListActivity.apk
0.27MB
Android_ListActivity.zip
0.62MB
반응형