Xamarin.Android ListView
ListView는 Android 애플리케이션의 중요한 UI 구성 요소입니다. 메뉴 옵션의 짧은 목록에서 연락처 또는 인터넷 즐겨찾기의 긴 목록에 이르기까지 모든 곳에서 사용됩니다. 기본 제공 스타일로 서식을 지정하거나 광범위하게 사용자 지정할 수 있는 행의 스크롤 목록을 표시하는 간단한 방법을 제공합니다.
개요
목록 보기 및 어댑터는 Android 애플리케이션의 가장 기본적인 구성 요소에 포함됩니다. 이 클래스는 ListView
짧은 메뉴이든 긴 스크롤 목록이든 관계없이 데이터를 유연하게 표시할 수 있는 방법을 제공합니다. 빠른 스크롤, 인덱스 및 애플리케이션에 대한 모바일 친화적인 사용자 인터페이스를 빌드하는 데 도움이 되는 단일 또는 여러 선택과 같은 유용성 기능을 제공합니다. ListView
인스턴스에는 행 보기에 포함된 데이터를 사용하여 피드하는 어댑터가 필요합니다.
이 가이드에서는 Xamarin.Android에서 구현 ListView
하는 방법과 다양한 Adapter
클래스를 설명합니다. 또한 모양을 ListView
사용자 지정하는 방법을 보여 줍니다. 또한 메모리 소비를 줄이기 위해 행 재사용의 중요성에 대해 설명합니다. 또한 활동 수명 주기가 영향을 미치고 Adapter
사용하는 방법에 대한 몇 가지 설명도 있습니다ListView
. Xamarin.iOS ListView
를 사용하여 플랫폼 간 애플리케이션에서 작업하는 경우 컨트롤은 iOS UITableView
와 구조적으로 유사하며 Android Adapter
는 이와 유사 UITableViewSource
합니다.
먼저 간단한 자습서에서는 기본 코드 예제를 소개합니다 ListView
. 다음으로, 실제 앱에서 사용할 ListView
수 있도록 고급 항목에 대한 링크가 제공됩니다.
참고 항목
위젯은 RecyclerView
보다 고급적이고 유연한 버전의 ListView
. (및GridView
)의 후속 ListView
작업으로 설계되었기 때문에 RecyclerView
새 앱 개발 대신 ListView
사용하는 RecyclerView
것이 좋습니다. 자세한 내용은 RecyclerView를 참조 하세요.
ListView 자습서
ListView
가 ViewGroup
스크롤 가능한 항목의 목록을 만드는 입니다. 목록 항목은 .를 사용하여 IListAdapter
목록에 자동으로 삽입됩니다.
이 자습서에서는 문자열 배열에서 읽은 국가/지역 이름의 스크롤 가능한 목록을 만듭니다. 목록 항목을 선택하면 알림 메시지가 목록에 있는 항목의 위치를 표시합니다.
HelloListView라는 새 프로젝트를 시작합니다.
list_item.xml XML 파일을 만들고 Resources/Layout/ 폴더 내에 저장합니다. 다음을 삽입합니다.
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="10dp"
android:textSize="16sp">
</TextView>
이 파일은 에 배치될 각 항목의 레이아웃을 ListView
정의합니다.
확장 ListActivity
할 클래스를 열고 MainActivity.cs
수정합니다(대신Activity
).
public class MainActivity : ListActivity
{
) 메서드에 대해 OnCreate()
다음 코드를 삽입합니다.
protected override void OnCreate (Bundle bundle)
{
base.OnCreate (bundle);
ListAdapter = new ArrayAdapter<string> (this, Resource.Layout.list_item, countries);
ListView.TextFilterEnabled = true;
ListView.ItemClick += delegate (object sender, AdapterView.ItemClickEventArgs args)
{
Toast.MakeText(Application, ((TextView)args.View).Text, ToastLength.Short).Show();
};
}
작업에 대한 레이아웃 파일(일반적으로 SetContentView(int)
사용)은 로드되지 않습니다.
대신 다음을 설정합니다. ListAdapter
속성이 자동으로 를 추가합니다. ListView
의 전체 화면을 ListActivity
채웁니다.
이 메서드는 에 배치될 목록 항목의 배열을 관리하는 을 ListView
사용합니다ArrayAdapter<T>
.
입니다.ArrayAdapter<T>
생성자는 애플리케이션 Context
, 각 목록 항목에 대한 레이아웃 설명(이전 단계에서 만든) 및 를 T[]
사용합니다. Java.Util.IList<T>
에 삽입할 개체의 배열 ListView
(다음에 정의됨).
입니다.TextFilterEnabled
속성은 사용자가 입력을 ListView
시작할 때 목록이 필터링되도록 텍스트 필터링을 켭니다.
입니다.ItemClick
이벤트는 클릭에 대한 처리기를 구독하는 데 사용할 수 있습니다. 항목의 경우 ListView
을 클릭하면 처리기가 호출되고 Toast
클릭된 항목의 텍스트를 사용하여 메시지가 표시됩니다.
플랫폼에 대해 고유한 레이아웃 파일을 ListAdapter
정의하는 대신 플랫폼에서 제공하는 목록 항목 디자인을 사용할 수 있습니다.
예를 들어 .Android.Resource.Layout.SimpleListItem1
Resource.Layout.list_item
다음 using
문을 추가합니다.
using System;
다음으로 다음 문자열 배열을 다음의 MainActivity
멤버로 추가합니다.
static readonly string[] countries = new String[] {
"Afghanistan","Albania","Algeria","American Samoa","Andorra",
"Angola","Anguilla","Antarctica","Antigua and Barbuda","Argentina",
"Armenia","Aruba","Australia","Austria","Azerbaijan",
"Bahrain","Bangladesh","Barbados","Belarus","Belgium",
"Belize","Benin","Bermuda","Bhutan","Bolivia",
"Bosnia and Herzegovina","Botswana","Bouvet Island","Brazil","British Indian Ocean Territory",
"British Virgin Islands","Brunei","Bulgaria","Burkina Faso","Burundi",
"Cote d'Ivoire","Cambodia","Cameroon","Canada","Cape Verde",
"Cayman Islands","Central African Republic","Chad","Chile","China",
"Christmas Island","Cocos (Keeling) Islands","Colombia","Comoros","Congo",
"Cook Islands","Costa Rica","Croatia","Cuba","Cyprus","Czech Republic",
"Democratic Republic of the Congo","Denmark","Djibouti","Dominica","Dominican Republic",
"East Timor","Ecuador","Egypt","El Salvador","Equatorial Guinea","Eritrea",
"Estonia","Ethiopia","Faeroe Islands","Falkland Islands","Fiji","Finland",
"Former Yugoslav Republic of Macedonia","France","French Guiana","French Polynesia",
"French Southern Territories","Gabon","Georgia","Germany","Ghana","Gibraltar",
"Greece","Greenland","Grenada","Guadeloupe","Guam","Guatemala","Guinea","Guinea-Bissau",
"Guyana","Haiti","Heard Island and McDonald Islands","Honduras","Hong Kong","Hungary",
"Iceland","India","Indonesia","Iran","Iraq","Ireland","Israel","Italy","Jamaica",
"Japan","Jordan","Kazakhstan","Kenya","Kiribati","Kuwait","Kyrgyzstan","Laos",
"Latvia","Lebanon","Lesotho","Liberia","Libya","Liechtenstein","Lithuania","Luxembourg",
"Macau","Madagascar","Malawi","Malaysia","Maldives","Mali","Malta","Marshall Islands",
"Martinique","Mauritania","Mauritius","Mayotte","Mexico","Micronesia","Moldova",
"Monaco","Mongolia","Montserrat","Morocco","Mozambique","Myanmar","Namibia",
"Nauru","Nepal","Netherlands","Netherlands Antilles","New Caledonia","New Zealand",
"Nicaragua","Niger","Nigeria","Niue","Norfolk Island","North Korea","Northern Marianas",
"Norway","Oman","Pakistan","Palau","Panama","Papua New Guinea","Paraguay","Peru",
"Philippines","Pitcairn Islands","Poland","Portugal","Puerto Rico","Qatar",
"Reunion","Romania","Russia","Rwanda","Sqo Tome and Principe","Saint Helena",
"Saint Kitts and Nevis","Saint Lucia","Saint Pierre and Miquelon",
"Saint Vincent and the Grenadines","Samoa","San Marino","Saudi Arabia","Senegal",
"Seychelles","Sierra Leone","Singapore","Slovakia","Slovenia","Solomon Islands",
"Somalia","South Africa","South Georgia and the South Sandwich Islands","South Korea",
"Spain","Sri Lanka","Sudan","Suriname","Svalbard and Jan Mayen","Swaziland","Sweden",
"Switzerland","Syria","Taiwan","Tajikistan","Tanzania","Thailand","The Bahamas",
"The Gambia","Togo","Tokelau","Tonga","Trinidad and Tobago","Tunisia","Turkey",
"Turkmenistan","Turks and Caicos Islands","Tuvalu","Virgin Islands","Uganda",
"Ukraine","United Arab Emirates","United Kingdom",
"United States","United States Minor Outlying Islands","Uruguay","Uzbekistan",
"Vanuatu","Vatican City","Venezuela","Vietnam","Wallis and Futuna","Western Sahara",
"Yemen","Yugoslavia","Zambia","Zimbabwe"
};
에 배치 ListView
될 문자열의 배열입니다.
애플리케이션을 실행합니다. 목록을 스크롤하거나 입력하여 필터링한 다음 항목을 클릭하여 메시지를 볼 수 있습니다. 다음과 비슷한 결과가 표시됩니다.
하드 코딩된 문자열 배열을 사용하는 것이 가장 좋은 디자인 방법은 아닙니다. 이 자습서에서는 간단한 설명을 위해 다음을 보여 줍니다. ListView
위젯. 더 나은 방법은 프로젝트 리소스/값/Strings.xml 파일의 리소스와 string-array
같이 외부 리소스에 의해 정의된 문자열 배열을 참조하는 것입니다. 예시:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">HelloListView</string>
<string-array name="countries_array">
<item>Bahrain</item>
<item>Bangladesh</item>
<item>Barbados</item>
<item>Belarus</item>
<item>Belgium</item>
<item>Belize</item>
<item>Benin</item>
</string-array>
</resources>
에 대해 이러한 리소스 문자열을 ArrayAdapter
사용하려면 원본을 바꿉니다. ListAdapter
줄은 다음과 같습니다.
string[] countries = Resources.GetStringArray (Resource.Array.countries_array);
ListAdapter = new ArrayAdapter<string> (this, Resource.Layout.list_item, countries);
애플리케이션을 실행합니다. 다음과 비슷한 결과가 표시됩니다.
ListView를 사용하여 추가 진행
다시 기본 항목(아래 링크)에서는 클래스와 함께 사용할 수 있는 다양한 유형의 어댑터 유형을 포괄적으로 ListView
살펴봅니다. 구조는 다음과 같습니다.
시각적 모양 – 컨트롤의
ListView
일부 및 작동 방식.클래스 – 를 표시하는 데 사용되는 클래스 개요입니다
ListView
.ListView 에 데이터 표시 – 간단한 데이터 목록을 표시하는 방법, 유용성 기능을 구현
ListView's
하는 방법, 다양한 기본 제공 행 레이아웃을 사용하는 방법 및 어댑터가 행 보기를 다시 사용하여 메모리를 저장하는 방법.사용자 지정 모양 – 사용자 지정 레이아웃, 글꼴 및 색을 사용하여 스타일
ListView
변경SQLite 사용 – SQLite 데이터베이스에서 데이터를
CursorAdapter/>으로 표시하는 방법 활동 수명 주기 – 수명 주기에서 데이터를 채워야 하는 위치와 리소스를
ListView
해제할 시기를 포함하여 활동을 구현할 때 고려할 사항을 디자인합니다.
토론(6부로 나뉘어짐)은 클래스 자체에 대한 ListView
개요로 시작하여 점진적으로 더 복잡한 사용 방법을 소개합니다.
- ListView 파트 및 기능
- Data로 ListView 채우기
- ListView 모양 사용자 지정
- CursorAdapters 사용
- ContentProvider 사용
- ListView 및 작업 수명 주기
요약
이 항목 집합은 기본 제공 기능을 ListActivity
사용하는 방법에 대한 몇 가지 예제를 소개 ListView
하고 제공했습니다. 다채로운 레이아웃과 SQLite 데이터베이스를 사용할 수 있는 사용자 지정 구현 ListView
에 대해 설명했으며, 구현에서 활동 수명 주기의 관련성에 대해 ListView
간략하게 설명했습니다.