[ListView 기초예제1]                                                   //참고 URL : http://iotsw.tistory.com/106

- 사용자가 정의한 데이터 목록을 아이템 단위로 구성하여 화면에 출력하는 ViewGroup의 한 종류
- 리스트뷰의 아이템들은 세로방향으로 나열되고 아이템의 갯수가 많아짐에 따라 리스트뷰에 표시될 내용
  이 리스트의 크기보다 커지면 스크롤이 제공됨
- 리스트뷰에 표시되는 아이템은 단순히 Text만 출력하는 기본 리스브튜 구조도 있고, 다양항 위젯의 조합
  으로 원하는 View의 조합으로 커스텀(사용자회된)형태의 구조도 만들 수 있음

 

[MainActivity.java]

  1. Adapter 란 : UI(android.R.layout.simple_list_item_1)와 Data(listItems)를 가지고 있게 되는데.
                      UI를 Inflation해서 Data에 바인딩하는 역할을 한다.

     . ListView Adapter

    

     - 어탭터는 하나의 뷰를 그릴 UI와 모든 아이템들의 데이터가 필요
     - 어댑터는 아이템들 데이터셋으로부터 하나씪 꺼내서 뷰를 그릴 UI에 데이터를 바인딩해서 하나의 뷰를
        만들어서 리스트뷰에 배치하는 작업을 모든 아이템에 대해 반복적으로 수행함

 
public class MainActivity extends AppCompatActivity {

    private ListView listView;
    private String[] listItems//리스트뷰에 데이터들 담을 수 있는 껍데기
    private ArrayAdapter<String> adapter; //어댑터 만들기

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        listView = (ListView)findViewById(R.id.lv);
        listItems = new String[] {"대한민국", "영국", "프랑스", "알제리", "배트남"};  //리스트뷰에 담을 데이터

        //Adapter는 UI(android.R.layout.simple_list_item_1)와 Data(listItems)를 가지고 있게 되는데.
        //          UI를 Inflation해서 Data에 바인딩하는 역할을 한다.
        adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, listItems);

        listView.setAdapter(adapter);

        //이벤트 처리
        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> adapterView, View view, int position, long l) {
                //Toast.makeText(MainActivity.this,(String)parent.getItemAtPostion(position), 0).show();  //오류 발생
                Toast.makeText(MainActivity.this, position + "번째 클릭", Toast.LENGTH_SHORT).show();
            }
        });

        /*
           정의 : 롱클릭 이벤트  (오래 눌렀을 경우 수행)
           -return true 면  : 이벤트를 먹어버려서 setOnItemClickListener()를 수행하지 않음
           -return false 면 : setOnItemClickListener()를 수행함.
         */
        listView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
            @Override
            public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
                // TODO Auto-generated method stub
                Toast.makeText(MainActivity.this, (String)parent.getItemAtPosition(position)+ "를 오래누름", Toast.LENGTH_SHORT).show();
                return false;
            }
        });

    }
}

 

 

[ activity_main.xml]

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/activity_main"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.example.farmer.listview001.MainActivity">

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

'[Android] - 개념 > ListView' 카테고리의 다른 글

ListView 기본 개념  (0) 2017.01.18
ListView 정의  (0) 2016.12.07
Posted by 농부지기
,