728x90

1. ListView

ListView에 데이터를 추가하여 화면에 표시하기 위해서는 Adapter를 사용해야한다.

 

Adappter:  "사용자가 정의한 데이터를 ListView에 출력하기 위해 사용하는 객체로, 사용자 데이터와 화면 출력 View로 이루어진 두 개의 부분을 이어주는 객체" 

 

2.ListView 기본 사용법

 

listview는 기본적인 문자열을 출력하는 listview 만으로도 리스트뷰를 구성할수있지만

우리가 쓰는 대부분의 app들의 listview의 경우 Textview, imgageview , button 등을 마음대로 배치하여 listview를 구성하고있다.

 

 

2.1ListView가 표시될 위치결정(Layout xml작성)

2.2사용자 데이터 정의(ex string 타입의 배열선언)

2.3Adapter생성후 Listview에 지정

2.4Listview클릭 이벤트처리

 

(2.1 activity_main.xml)

<?xml version="1.0" encoding="utf-8"?>
<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=".MainActivity"
    >

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

    </ListView>

</LinearLayout>

 

 

(2.2 ~ 2.4 MainActivity.java)

package com.example.pr2;

import androidx.appcompat.app.AppCompatActivity;

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

import java.util.ArrayList;
import java.util.List;

public class MainActivity extends AppCompatActivity {

    private ListView listview1;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ListView listview1 = (ListView) findViewById(R.id.listview1);
        
        //2.2 string타입의 배열선언
        String [] items = {"대한민국","중국","미국","일본"};
        
        //2.3 adapter생성
        ListAdapter adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,items);
        //2.3 adapter 을 listview에 지정
        listview1.setAdapter(adapter);

        //2.4 listview의 item클릭시 이벤트처리
        listview1.setOnItemClickListener(
                new AdapterView.OnItemClickListener(){

                    @Override
                    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                        String item = String.valueOf(parent.getItemAtPosition(position));
                        Toast.makeText(MainActivity.this,item,Toast.LENGTH_SHORT).show();
                    }
                }
        );


    }
}

 

아이템클릭시 해당 아이템의 문자열을 토스트띄우는 클릭이벤트를 넣었습니다.

728x90

+ Recent posts