리스트란? 일반적으로 여러 개의 아이템 중 하나를 선택할 수 있는 세로 모양으로 된 화면 컨트롤을 말한다.
 
위젯은 선택 위젯과 일반 위젯으로 나눌 수 있는데 그 차이는 어뎁터 패턴을 사용하는 것을 선택 위젯이라고 한다. 선택 위젯에 데이터를 넣을 때 위젯이 아닌 어뎁터에 설정 해야 한다. 화면에 보이는 뷰도 어뎁터에서 만든다. 
대표적인 선택 위젯은 리스트 뷰 이다. 
 
※어댑터 : 보여지는 View와 그 View에 올릴 Data를 연결하는 다리 역할을 한다.
 
ArrayAdapter란? 
ArrayAdapter는 배열과 어댑터 뷰를 연결하는 클래스입니다. 여기서 배열은 어댑터 뷰가 화면으로 보여줄 자료들의 집합 
선택 위젯이란? 여러 개의 아이템 중에 하나를 선택할 수 있는 리스트 모양의 위젯 
 
 
 
 리스트뷰에 리스트에 담겨진 데이터들을 출력한 예제 이다.
리스트뷰에 리스트에 담겨진 데이터들을 출력한 예제 이다.
 
①Arraylis인 list에 데이터들을 추가한다.
ArrayList<String> list = new ArrayList<>();
        
        list.add("바나나");
        list.add("딸기");
        list.add("수박");
        list.add("사과");
        list.add("오렌지");
        list.add("망고");
        list.add("키위");
        list.add("포도");
        list.add("멜론");
        list.add("두리안");
        list.add("바나나");
 
 
②ArrayAdapter 객체를 생성하여 기본 sdk에 내장된 android.R.layout.simple_list_item_1에 list를 넣어야 한다.
데이터를 전달 받은 adapter를 listview에 보내고 listView에 있는 아이템을 클릭시 발생되는 이벤트를 설정해 준다.
final ArrayAdapter<String> adapter = new ArrayAdapter<>(this,android.R.layout.simple_list_item_1,list);
        listView.setAdapter(adapter);
        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                /*
                parnet->mainactivity
                position -> list 인덱스
                 */
             String selected_item = (String) parent.getItemAtPosition(position);
             textView.setText(selected_item);
           //  adapter.getPosition()
            }
        });
 
-전체 코드-
더보기
-Mainactivity.java-
package com.example.my26_listview;
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.TextView;
import java.util.ArrayList;
public class MainActivity extends AppCompatActivity {
    TextView textView;
    ListView listView;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        textView = findViewById(R.id.textView);
        listView = findViewById(R.id.listView);
        ArrayList<String> list = new ArrayList<>();
        final ArrayAdapter<String> adapter = new ArrayAdapter<>(this,android.R.layout.simple_list_item_1,list);
        listView.setAdapter(adapter);
        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                /*
                parnet->mainactivity
                position -> list 인덱스
                 */
             String selected_item = (String) parent.getItemAtPosition(position);
             textView.setText(selected_item);
           //  adapter.getPosition()
            }
        });
        list.add("바나나");
        list.add("딸기");
        list.add("수박");
        list.add("사과");
        list.add("오렌지");
        list.add("망고");
        list.add("키위");
        list.add("포도");
        list.add("멜론");
        list.add("두리안");
        list.add("바나나");
    }
}
-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">
    <TextView
        android:id="@+id/textView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@android:color/holo_blue_bright"
        android:text="아래목록에서 선택하세요"
        android:gravity="center"/>
    <ListView
        android:id="@+id/listView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:listSelector="@android:color/holo_green_light"/>
    <!-- 눌렷을 때 색 변경 -->
</LinearLayout>