public class MainActivity extends ListActivity { //ListActivity- Activity가 보여줄 View로 이미 ListView를 설정한 Activity //일반 Activity와 다르게 setContentView()메소드를 사용하지 않음 //이미 ListView 객체가 설정되어 있음 //대량의 문자열 데이터를 저장할 Arraylist 객체 생성 ArrayList<String> mDatas= new ArrayList<String>();
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //여기에 자동으로 써있는 setContentView()메소드 삭제 //문자열 데이터 ArrayList에 추가 mDatas.add("KOREA"); mDatas.add("CANADA"); mDatas.add("FRANCE"); mDatas.add("MEXICO"); mDatas.add("POLAND"); mDatas.add("SAUDI ARABIA"); //ListView가 보여줄 뷰를 만들어내는 Adapter 객체 생성 //ArrayAdapter : 문자열 데이터들을 적절한 iew로 1:1로 만들어서 List형태로 ListView에 제공하는 객체 //첫번째 파라미터 : Context객체 ->MainActivity가 Context를 상속했기 때문에 this로 제공 가능 //두번째 파라미터 : 문자열 데이터를 보여줄 뷰. ListView에 나열되는 하나의 아이템 단위의 뷰 모양 //세번째 파라미터 : adapter가 뷰로 만들어줄 대량의 데이터들 //본 예제에서는 문자열만 하나씩 보여주면 되기 때문에 두번째 파라미터의 뷰 모먕은 Android 시스템에서 제공하는 //기본 Layout xml 파일을 사용함. ArrayAdapter adapter= new ArrayAdapter(this, android.R.layout.simple_list_item_1, mDatas); //ListActivity가 가지고 있는 ListView에 Adapter 설정 //getListView() 메소드로 보유하고 있는 ListView 객체를 얻어올 수 있음 setListAdapter(adapter); } //ListActivity의 List를 클릭했을 때 자동으로 호출되는 메소드 //첫번째 파라미터 : ListActivity가 보유하고 있는 ListView 객체 //두번째 파라미터 : List중에 선택된 아이템 뷰(View) //세번째 파라미터 : 클릭된 아이템의 위치 //네번째 파라미터 : 클릭된 아이템의 아이디(기본값은 position과 동일) @Override protected void onListItemClick(ListView l, View v, int position, long id) { // TODO Auto-generated method stub Toast.makeText(MainActivity.this, mDatas.get(position), Toast.LENGTH_SHORT).show(); super.onListItemClick(l, v, position, id); } } |