반응형
안녕하세요 돼지왕 왕돼지입니다.
오늘은 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();
}
}
}
반응형
'프로그래밍 놀이터 > 안드로이드, Java' 카테고리의 다른 글
[Android/안드로이드] Memory Leak ( 메모리 누수 ) 를 피하는 방법. (2) | 2012.02.23 |
---|---|
[Android/안드로이드] ListView ( 리스트 뷰 ) 두번째 이야기. (0) | 2012.02.22 |
[Android/안드로이드] Title Bar 에 Progress Bar 띄우기 ( 타이틀 바에 프로그레스 바 띄우기 ) (0) | 2012.02.22 |
[Android/안드로이드] Progress Bar ( 프로그래스 바 ) (0) | 2012.02.22 |
[Android/안드로이드] Seek Bar ( 시크 바 ) (0) | 2012.02.22 |
댓글