리스트 액티비티(ListActivity) 클릭(Click)처리 :: 안드로이드 설치 및 개발[SSISO Community]
 
SSISO 카페 SSISO Source SSISO 구직 SSISO 쇼핑몰 SSISO 맛집
추천검색어 : JUnit   Log4j   ajax   spring   struts   struts-config.xml   Synchronized   책정보   Ajax 마스터하기   우측부분

안드로이드 설치 및 개발
[1]
등록일:2018-10-16 13:40:23 (0%)
작성자:
제목:리스트 액티비티(ListActivity) 클릭(Click)처리

이전 까지 ListView를 통해 많은 데이터를 표시하는  예제를 소개했었습니다.


리스트뷰는 많은 어플에서 실제로 활용도가 높아

많이 사용됩니다.


특히 액티비티 화면전체가 리스트형태로 되어 있는 경우도 많습니다.

해서 ListView를 만들필요없이

액티비티(Activity)가 기본적으로 ListView를 보유하도록 만들었습니다.


이렇게 만들어진 것이 ListActivity 입니다.


즉, ListView가 이미 설정되어 있는 액티비티라고 보면 됩니다.


여기서 중요한 것은

 이미 이 액티비티는 화면에 보여 줄 View객체가 설정되어 있다는 것입니다.


다들 아시다시피

액티비티는 setContentView() 메소드를 통해 보여줄 View를 설정합니다.

ListActivity는 이 작업을 하지 않는다는 거죠.


코드가 간단하니 소스코드만 소개하겠습니다.

참고로 setContentView()메소드가 없는 만큼 xml 레이아웃 파일은 필요없네요.


리스트를 보여주고 선택하면 해당 문자열 데이터가 Toast로 출력되는 예제소소입니다.



리스트 액티비티(ListActivity)에서 주요한 역할을 하는 코딩 부분은 굵게 표시했습니다. 

 MainActivity.java


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);

}

}




결과화면


   


[본문링크] 리스트 액티비티(ListActivity) 클릭(Click)처리
[1]
코멘트(이글의 트랙백 주소:/cafe/tb_receive.php?no=34879
작성자
비밀번호

 

SSISOCommunity

[이전]

Copyright byCopyright ⓒ2005, SSISO Community All Rights Reserved.