반응형
간단한 리스트뷰 만들어보기
항목 클릭시 Toast 메세지로 제목을 띄워준다.
■AdapterView
ViewGroup 중 하나의 어댑터뷰는 그 자체를 사용하기보다는 하위 클래스를 사용한다.
어댑터뷰의 하위 클래스 => GridView, ListView
■ListView 사용법
리스트뷰는 는 리스트 형태의 데이터를 보여주기 위한 위젯이다.
리스트 형태의 원본 데이터가 있어야 하며 이를 Adapter 를 통해 각각의 아이템에 지정해준다.
- View - 화면에 보여줄 레이아웃 내에 View 객체
- Item - 화면에 표시할 실질적인 item리스트 (데이터)
- Adapter - Item(데이터)를 View와 연결해서 뷰(View) 생성 및 관리하는 객체
먼저, XML 파일의 <ListView></ListView> 태그 부분에 리스트뷰를 생성한다.
- activity_main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<ListView
android:id="@+id/listView1"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
</ListView>
</LinearLayout>
그 다음으로 Java코드에서 리스트뷰에 실제 데이터를 채운다
1. 리스트뷰에 나열할 내용을 미리 String 배열로 만든다.
final String[] mid = { "히어로즈", "24시", "로스트", "로스트룸", "스몰빌", "탐정몽크",
"빅뱅이론", "프렌즈", "덱스터", "글리", "가쉽걸", "테이큰", "슈퍼내추럴", "브이" };
2. 리스트뷰 변수를 생성하고 XML의 <ListView>에 대응시킨다.
ListView list = (ListView) findViewById(R.id.listView1);
3. ArrayAdapter<String> 형 변수를 선언하고, 리스트뷰의 모양과 내용을 1번 배열로 채운다.
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, mid);
4. 3번에서 생성한 ArrayAdapter 를 2번의 리스트뷰 변수에 적용한다.
list.setAdapter(adapter);
5. 리스트뷰의 항목을 클릭했을 때 동작하는 리스너를 정의한다.
list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
Toast.makeText(getApplicationContext(), mid[arg2],
Toast.LENGTH_SHORT).show();
}
});
- MainActivitu.java
package com.androidpark.listview1;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
setTitle("리스트뷰 테스트");
final String[] mid = { "히어로즈", "24시", "로스트", "로스트룸", "스몰빌", "탐정몽크",
"빅뱅이론", "프렌즈", "덱스터", "글리", "가쉽걸", "테이큰", "슈퍼내추럴", "브이" };
ListView list = (ListView) findViewById(R.id.listView1);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, mid);
list.setAdapter(adapter);
list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
Toast.makeText(getApplicationContext(), mid[arg2],
Toast.LENGTH_SHORT).show();
}
});
}
}
반응형
'Adroid Studio' 카테고리의 다른 글
Android Studio_옵션메뉴와 컨택스트 메뉴 차이 (0) | 2022.08.26 |
---|---|
Android Studio_안드로이드 스튜디오_간단한 리스트 만들기2(RecyclerView) (0) | 2022.08.26 |
Android Studio_안드로이드 스튜디오_간단한 웹브라우저 만들기 (0) | 2022.08.25 |
Android Studio_안드로이드 스튜디오 앱 만들기5_레이아웃의 개요 (0) | 2022.08.22 |
Android Studio_안드로이드 스튜디오 앱 만들기4_위젯 활용예제 (0) | 2022.08.22 |