본문 바로가기
Adroid Studio

Android Studio_안드로이드 스튜디오_간단한 리스트 만들기1(ListView)

by 디디찐 2022. 8. 25.
반응형

간단한 리스트뷰 만들어보기

항목 클릭시 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();
            }
        });
    }
}
반응형