본문 바로가기
프로그래밍 놀이터/안드로이드, Java

[Android/안드로이드] ListView ( 리스트 뷰 ) 첫번째 이야기.

by 돼지왕 왕돼지 2012. 2. 22.
반응형


안녕하세요 돼지왕 왕돼지입니다.
오늘은 ListView에 대해서 2번에 나눠 다뤄보겠습니다.


ListView ( 리스트 뷰 )


 : 복수 개의 항목들을 수직으로 표시하는 VIew수직 스크롤 지원만 지원한다. (수평은 X)
 


Sample Code

  

<xml>

<ListView android:id="@+id/list"
               android:layout_width="fill_parent"
               android:layout_height="fill_parent"/>

<java> 
ArrayList<String> strlist = new ArrayList<String>();
strlist.add("text1");
strlist.add("text2");
 
ArrayAdapter<String> Adapter;
Adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, strlist);
 
ListView list = (ListView)findViewById(R.id.list);
list.setAdapter(Adapter); 

 



기본 APIs


ArrayAdapter(Context context, int textViewResourceId, List<T> objects)
ArrayAdapter(Context context, int textViewResourceId, T[] objects)

textViewResourceId
 = simple_list_item_1 : 하나의 텍스트 뷰
 = simple_list_item_2 : 두개의 텍스트 뷰
 = simple_list_item_checked : 오른족에 체크 표시
 = simple_list_item_single_choice : 오른쪽에 라디오 버튼
 = simple_ist_item_multiple_choice : 오른쪽에 체크 버튼

void setAdapter (T adapter)

 




xml 을 이용한 array 작성법 및 listview 의 속성


<values/arrays.xml >

<resources>
  <string-array name="country">
      <item> Norway </item>
      <item> Korea </item>
   </string-array>
</resources> 


// static ArrayAdapter<CharSequence> createFromResource (Context context, int textArrayResId, int layout)
 
<example1>

ArrayAdapter<CharSequence> Adapter = ArrayAdapter.createFromResource(this, R.array.country, android.R.layout.simple_list_item_1);
 
ListView list = (ListView)findViewById(R.id.list);
list.setAdapter(Adapter);


<example2>

ArrayAdapter<CharSequence> Adapter = ArrayAdapter.createFromResource(this, R.array.country, android.R.layout.simple_list_item_1);
 
ListView list = (ListView)findViewById(R.id.list);
list.setAdapter(Adapter);
 
list.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
list.setDivider(new ColorDrawable(0xffffff00));
iist.setDividerHeight(5);

 
 
<APIs>

getChoiceMode()
setChoiceMode(choiceMode)

choiceMode =  CHOICE_MODE_NONE : 항목 선택 불가
                       CHOICE_MODE_SINGLE : 하나의 항목만
                       CHOICE_MODE_MULTIPLE : 복수 개 항목 

//Divider : 항목 사이의 구분선 지정, drawable은 경계선 설정
setDivider(drawable);
setDividerHeight(integer); 


 





 

항목 편집


<example>

ArrayList<String> Items = new ArrayList<String>();
Items.add("No. 1");
 
ArrayAdapter<String> Adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_single_choice, Items);
 
ListView list = (ListView)findViewById(R.id.list);
list.setAdapter(Adapter);
list.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
list.setOnItemClickListener(mItemClickListener);
 
Button.OnClickListener mClickListener = new View.OnClickListener(){
   public void onClick(View v){
      Items.add("added");
      Adapter.notifyDataSetChanged();
 
      int id = list.getCheckedItemPosition();
      if ( id != ListView.INVALID_POSITION ){
         Items.remove(id);
         list.clearChoices();
         Adapter.notifyDataSetChanged();
      }
   }
}

 







반응형

댓글