일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- Overloading
- go
- Java
- 싱글 스레드
- Android
- 오버로딩
- as?
- adapter
- 노트북
- 패널 교체
- var
- 배열
- 안드로이드
- HP
- 함수
- 자바스크립트
- 리스트 뷰
- ListView
- node.js
- Kotlin
- 파이썬
- 노트북 추천
- javascript
- Array
- 연산자
- 자바
- golang
- 코틀린
- Python
- js
Archives
- Today
- Total
Bbaktaeho
[Android] ListView 사용하기 (안드로이드, 리스트뷰, Adapter) 본문
개발 (Develop)/안드로이드 (Android)
[Android] ListView 사용하기 (안드로이드, 리스트뷰, Adapter)
Bbaktaeho 2020. 9. 20. 15:35반응형
들어가며
ListView를 사용해서 과일 리스트를 나타내 보겠습니다.
각각의 아이템인 과일을 클릭했을 때 이벤트 리스너를 통해서 어떤 아이템이 선택되었는지 TextView에 나타내 보겠습니다.
ListView
ListView는 일반적으로 리스트 형태로 된 화면 컨트롤을 말합니다.
여러 개의 아이템 중에 하나를 선택할 수 있는 위젯들을 Selection Widget이라고 부릅니다.
Adapter를 통해서 선택할 수 있는 여러 개의 아이템을 관리합니다.
즉, 원본 데이터는 Adapter에 설정하며 Adapter가 데이터 관리 기능을 담당합니다.
프로젝트 생성
res/activity_main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".ListViewActivity">
<TextView
android:id="@+id/tv_select"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="항목 선택 결과는?" />
<ListView
android:id="@+id/listView"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
LinearLayout에 선택된 아이템을 나타내는 TextView와 리스트를 보여주는 ListView를 만들었습니다.
MainActivity.java
List<String> list = new ArrayList<>();
list.add("사과");
list.add("배");
list.add("딸기");
list.add("감자");
ArrayList 자료구조를 사용해서 리스트를 구현합니다.
ArrayAdapter<String> adpater = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, list);
listView.setAdapter(adpater);
ArrayAdapter로 어뎁터를 생성합니다.
ArrayAdapter는 리스트뷰에 보여줄 수 있는 가장 간단한 방법입니다.
생성자의 인자값으로 Context, LayoutRes, List를 받습니다.
listView의 setAdapter 메서드를 통해서 어뎁터를 설정해줍니다.
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int position, long l) {
String data = (String) adapterView.getItemAtPosition(position);
tvSelect.setText(data);
}
});
리스트뷰의 아이템을 클릭했을 때 이벤트 처리를 수행하는 코드입니다.
onItemClick 메서드로 전달되는 파라미터를 보면 몇 번째 아이템이 클릭된 것인지를 position 변수 값으로 확인할 수 있습니다.
getItemAtPosition 메서드를 통해서 아이템의 데이터를 가져오고 그 데이터를 textView에 그려줍니다.
실행
반응형