개발/Android

ListView 메소드

2013. 2. 8. 12:33

ListView의 주요 메소드들


ListView와 Adapter를 선언하는 방법은 이전 글에서 확인가능.

이 글에서는 ListView의 자주 쓰이는 기본적인 메소드들 몇개 설명.

http://developer.android.com/reference/android/widget/ListView.html 에서 더 많은 메소드들을 확인할 수 있다.


1. ChoiceMode

ListView의 각 항목들을 선택하는 모드 설정

ListView list = (ListView)findViewById(R.id.list);

list.setAdapter(Adapter);


list.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);

다음 네 가지 선택옵션이 있다.

CHOICE_MODE_NONE

CHOICE_MODE_SINGLE

CHOICE_MODE_MULTIPLE

CHOICE_MODE_MULTIPLE_MODAL


2. OverScrollMode

ListView의 오버스크롤(리스트의 끝에 도달했을 때 계속 스크롤) 모드를 설정한다.

list.setOverScrollMode(View.OVER_SCROLL_ALWAYS);

OVER_SCROLL_ALWAYS: 오버스크롤을 항상 허가한다. (젤리빈에서는 파란색 음영으로 표시)

OVER_SCROLL_NEVER: 오버스크롤을 허가하지 않는다.

OVER_SCROLL_IF_CONTENT_SCROLLS: 내용물이 스크롤할만큼 클 대만 허용한다. 한 화면에 다 표시되는 경우는 NEVER, 스크롤 가능한 경우는 ALWAYS와 같다.


3. ItemClickListener

ListView의 item을 클릭했을 때 동작을 정의한다.

list.setOnItemClickListener(itemClickListener);

AdapterView.OnItemClickListener itemClickListener2 = new AdapterView.OnItemClickListener() {
	public void onItemClick(AdapterView parent, View view, int position, long id){
		// TODO Auto-generated method stub
	}
};

position은 클릭한 아이템의 해당 ListView에서의 위치(position; 0, 1, 2, .., n-1)를 의미한다.


4. OnScrollListener

ListView를 스크롤 했을 때 동작을 정의한다.

list.setOnScrollListener(new OnScrollListener() {

	@Override
	public void onScroll(AbsListView view, int firstVisibleItem,
			int visibleItemCount, int totalItemCount) {
		// TODO Auto-generated method stub
				
	}

	@Override
	public void onScrollStateChanged(AbsListView view, int scrollState) {
		// TODO Auto-generated method stub
			
	}
}

onScroll은 스크롤중일 때, onScrollStateChanged는 스크롤 하는 상태가 바뀔 때 호출된다.

onScroll 메소드의 firstVisibleItem은 스크롤 중 해당 ListView의 가장 위에 보이는 항목의 위치(position; 0, 1, 2, .., n-1)를 의미한다.

onScrollStateChanged의 scrollState의 종류는 다음과 같다.

 SCROLL_STATE_IDLE (0)

 스크롤중이 아닌 상태

 SCROLL_STATE_TOUCH_SCROLL (1)

 화면을 터치하여 스크롤중인 상태

 SCROLL_STATE_FLING (2)

 사용자가 손가락을 떼고나서도 아직 스크롤중인 상태




'개발 > Android' 카테고리의 다른 글

View에 Scrollbar 제거 및 변경옵션  (0) 2013.02.12
Viewgroup, View, ListView  (0) 2013.02.07