[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>
|