일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- js
- 코틀린
- 배열
- 싱글 스레드
- golang
- 함수
- as?
- HP
- adapter
- 자바스크립트
- node.js
- Array
- 연산자
- Overloading
- var
- 오버로딩
- 노트북 추천
- 패널 교체
- Kotlin
- go
- Java
- 자바
- 노트북
- 리스트 뷰
- 파이썬
- 안드로이드
- Android
- Python
- ListView
- javascript
- Today
- Total
Bbaktaeho
[Android] ListView 사용하기 (안드로이드, 리스트뷰, Adapter) 본문
[Android] ListView 사용하기 (안드로이드, 리스트뷰, Adapter)
Bbaktaeho 2020. 9. 20. 15:35들어가며
ListView를 사용해서 과일 리스트를 나타내 보겠습니다.
각각의 아이템인 과일을 클릭했을 때 이벤트 리스너를 통해서 어떤 아이템이 선택되었는지 TextView에 나타내 보겠습니다.
ListView
ListView는 일반적으로 리스트 형태로 된 화면 컨트롤을 말합니다.
여러 개의 아이템 중에 하나를 선택할 수 있는 위젯들을 Selection Widget이라고 부릅니다.
Adapter를 통해서 선택할 수 있는 여러 개의 아이템을 관리합니다.
즉, 원본 데이터는 Adapter에 설정하며 Adapter가 데이터 관리 기능을 담당합니다.
프로젝트 생성
[Android] Click 이벤트로 Toast 생성하기 (setOnclickListener, makeToast)
개발하기 전에 안드로이드 애플리케이션을 개발하려면 IntelliJ IDEA, Android Studio와 같은 통합 개발환경이 필요합니다. 저는 Android 4.0.1 버전으로 진행하겠습니다. 기획한 내용은 버튼과 이미지뷰를
bbaktaeho-95.tistory.com
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에 그려줍니다.