ListFragment는 리스트뷰로 가득 채워진 프래그먼트이며 목록을 보여주고 관리하는 것이 주된 임무이다.
ListFragment 내부에는 단 하나의 리스트뷰 위젯만 배치되어 있으며 이 위젯에 목록이 표시된다.
구조나 프로그래밍 방법은 ListActivity와 비슷하다. getListView()메소드로 내부의 리스트뷰를 언제든지 구해 속성을 조정하거나
메소드를 호출 할 수 있다.
setListAdapter 메소드로 어댑터를 지정하면 어댑터의 목록이 리스트뷰에 나타나며 리스트의 항목을 클릭하면
onListItemClick 콜백 메소드가 호출된다.
다음은 ListFragment로 리스트뷰와 같은 기능을 만드는 예제이다.
오직 ListFragmentTest.java 파일만 있으면 된다.
package com.example.ch20_listfragmenttest;
import android.app.Activity;
import android.app.FragmentManager;
import android.app.ListFragment;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;
public class ListFragmentTest extends Activity {
public static String[] WORDS = {
"1", "2", "3", "4", "5", "6"
};
public static String[] DESC = {
"숫자1", "숫자2", "숫자3", "숫자4", "숫자5", "숫자6"
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_list_fragment_test);
FragmentManager fm = getFragmentManager();
if(fm.findFragmentById(android.R.id.content)==null){
WordListFragment wordlist = new WordListFragment();
fm.beginTransaction().add(android.R.id.content, wordlist).commit();
}
}
public class WordListFragment extends ListFragment{
public void onActivityCreated(Bundle savedInstanceState){
super.onActivityCreated(savedInstanceState);
//리스트뷰를 만듬
setListAdapter(new ArrayAdapter<String>(getActivity(),
android.R.layout.simple_list_item_1, WORDS));
}
//리스트뷰 아이템이 클릭됬을때 출력하는 부분
public void onListItemClick(ListView l, View v, int position, long id){
String toast = WORDS[position] + " : " + DESC[position];
Toast.makeText(getActivity(), toast, 0).show();
}
}
}
출력 화면
'프로그래밍 > 안드로이드' 카테고리의 다른 글
안드로이드 - 앱 로고 아이콘 (0) | 2015.09.20 |
---|---|
안드로이드 - 액션바 숨기기 및 보이기 (0) | 2015.09.20 |
안드로이드 - 액션바 기초 (0) | 2015.09.20 |
안드로이드 - 이클립스에서 안드로이드 SDK MANAGER가 안보일때 (0) | 2015.09.19 |
안드로이드 - 백(Back) 버튼을 눌렀을 때 이전 프래그먼트로 복귀하기 (0) | 2015.09.13 |
안드로이드 - 프래그먼트 인수 전달 (0) | 2015.09.12 |
안드로이드 - FragmentManager를 이용한 프래그먼트 추가, 삭제, 교체, 숨김 (0) | 2015.09.12 |
안드로이드 - 프래그먼트 상태 저장하기 (0) | 2015.09.08 |