티스토리 뷰

리스트뷰 예제

activity_main.xml

<?xml version="1.0" encoding="utf-8" ?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:gravity="center_horizontal"
    android:padding="30dp">

    <ListView
        android:id="@+id/l"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

</LinearLayout>

 

list_item.xml

<?xml version="1.0" encoding="utf-8" ?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:gravity="center_horizontal">

    <TextView
        android:id="@+id/lt"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:padding="10dp"
        android:textSize="20sp"/>

</LinearLayout>


MainActicity.java

  • ArrayAdapter a = new ArrayAdapter(): 어댑터에 담을 데이터 집합 생성
  • R.layout.list_item: 리스트 아이템에 대한 레이아웃 리소스 아이디
  • R.id.lt: 리스트 아이템의 레이아웃 내텍스트뷰의 아이디
  • list: 리스트뷰에 나타낼 리스트 값 배열
  • setOnItemClickListener(): 화면에 표시된 리스트 목록 내 아이템을 클릭 시 이벤트
package com.example.test;

import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;

import androidx.appcompat.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        String list[]={"한국","미국","중국","일본","영국","독일","프랑스","캐나다","오스트리아", "덴마크","이란","필리핀","인도네시아","브라질","네팔","이집트"};

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

        ArrayAdapter a = new ArrayAdapter(this, R.layout.list_item, R.id.lt, list);
        l.setAdapter(a);
        l.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                Toast.makeText(getApplicationContext(), list[position]+" 클릭", Toast.LENGTH_LONG).show();
            }
        });
    }
}

실행 화면


리스트뷰 예제 (no XML)

MainActicity.java

  • android.R.layout.simple_list_item_1: 안드로이드 스튜디오 내에 기본적으로 내장된 리스트 아이템 리소스
package com.example.test;

import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;

import androidx.appcompat.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        String list[]={"한국","미국","중국","일본","영국","독일","프랑스","캐나다","오스트리아", "덴마크","이란","필리핀","인도네시아","브라질","네팔","이집트"};

        ListView l = new ListView(this);

        ArrayAdapter a = new ArrayAdapter(this, android.R.layout.simple_list_item_1, list);
        l.setAdapter(a);
        l.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                Toast.makeText(getApplicationContext(), list[position]+" 클릭", Toast.LENGTH_LONG).show();
            }
        });

        setContentView(l);
    }
}

실행 화면

 
공지사항
링크