관리 메뉴

moozi

ListView 구현하기 본문

안드로이드개발강좌

ListView 구현하기

moozi 2010. 1. 13. 16:50
[ 안드로이드 개발 2.0 ] ListView 구현하기

ListView는 여러 항목들을 수직방향으로 나열해서 스크롤하면서 볼 수 있게 해줍니다. ListView는 AutoComplete비슷한 기능도 포함하고 있어서 찾으려는 항목을 검색할 수 도 있습니다.

다음은 ListView의 실행 모습입니다.


안드로이드 개발자 사이트의 내용을 기준으로 살펴봅니다.

1. 먼저 다음과 같이 프로젝트를 생성합니다.


2. 다음 코드를 왼쪽 프로젝트 탐색기에서 src -> my.HelloListView -> HelloListView.java 를 열어서 덮어씁니다.

package my.HelloListView;

import android.app.ListActivity;
import android.os.Bundle;
import android.widget.ArrayAdapter;

public class HelloListView extends ListActivity {
    /** Called when the activity is first created. */
 @Override
 public void onCreate(Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);
  
   setListAdapter(new ArrayAdapter<String>(this,
           android.R.layout.simple_list_item_1, COUNTRIES));
   getListView().setTextFilterEnabled(true);
 }
 
 static final 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"
   };
}

위 코드를 살펴보면

public class HelloListView extends ListActivity {

이 부분에서 HelloListView 클래스는 ListActivity 를 상속받고 있습니다. 이전의  다른 예제들에서는 생성된 클래스가 Activity를 상속받고 있는 것과 다른 점입니다.

이 예제에서도 AutoComplete 구현 예제처럼 COUNTRIES 배열을 사용하고 있습니다.


3. Ctrl + F11 로 실행합니다.


위 화면은 실행후 ko라고 타이핑한 모습입니다. 화면상에는 입력하는 필드가 보이지 않지만 그냥 타이핑하면 위와 같이 글자가 입력되고 검색결과를 보여줍니다. 백스페이스로 ko 글자를 지우면 다시 모든 목록이 나타납니다.



Comments