티스토리 뷰
Android Pull To Refresh And Load More ListView를 ListFragment에서 사용하기
공허공자 2012. 12. 31. 16:15기존에 TabActivity를 통해 만들었던 앱을 Fragment 형식으로 변경하면서
ListActivity도 ListFragment로 큰 문제 없이 변경했는데
트위터 앱처럼 스크롤을 끝까지 내리면
자동으로 다음 목록이 붙어 나오게 하려는 목적으로 구글링 했고
GitHub에서 https://github.com/shontauro/android-pulltorefresh-and-loadmore를 찾게 되었고
적용하려 보니 몇가지 오류가 발생했다.
- 샘플에 있는 ListActivity들은 어떻게 ListFragment로 적용해야 하나?
- setListShown(boolena); setListShownNoAnimation(boolean); 등에서 발생하는 IllegalStateException과 같은 오류는 어떻게 잡아야 하나?
위 주소의 샘플 코드를 보면 ListActivity에서 상속받는데 자신의 소스에선 ListFragment에서 상속받도록 하고
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
// LoadMoreListView 커스텀뷰 사용
View view = inflater.inflate(R.layout.list, container, false);
return view;
}
를 추가하고
(위에서 R.layout.list는 <com.costum.android.widget.PullAndLoadListView />가 있는 레이아웃.)
public void onCreate(...) { } 의 함수명부터 setContentView(...); 까지를
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
......
}
로 치환해주면 된다.
2. ListFragment적용시 특정 함수 오류 문제
setListShown(); 과 같은 함수 사용시 IllegalStateException과 같은 오류가 발생하는데
stackOverflow에서 찾은 답변을 보니 커스텀 리스트뷰를 만들어줘야 하는데
즉, ListFragment에 커스텀뷰를 사용시 레이아웃 XML 역시 고유의 요소들을 포함하도록 상속받는 느낌으로 작성해줘야 하며 해당 고유 기능을 보장하도록 커스텀 리스트뷰 클래스를 생성하여 그것을 자신의 ListFragment 클래스의 부모클래스로 하면 된다는 것이다.
stackOverflow 관련 링크의 선택된 답변 클래스와 레이아웃 XML을 신규로 작성하고
레이아웃 XML 내용 중
<ListView android:id="@android:id/list" />를
<com.costum.android.widget.PullAndLoadListView android:id="@android:id/list" />로 치환.
이후 자신의 ListFragment 클래스가 TestListFragment이면
public class TestListFragment extends FixedListFragment { ... }
과 같이 하면 된다.
'모바일 > Android' 카테고리의 다른 글
Android Fragment 간 데이터 전달 (0) | 2013.01.14 |
---|---|
Android Drawable 미리보기 (0) | 2013.01.12 |
Android Action Bar Style Generator (안드로이드 액션바 스타일 생성기) (0) | 2012.12.26 |
Android ListView에 Disclosure Indicator 구현 (0) | 2012.12.24 |
Android ListView에 AsyncTaskLoader로 데이터 표시 (0) | 2012.12.23 |
- Total
- Today
- Yesterday
- Make Use Of
- How to geek
- 인터넷 통계정보 검색시스템
- 트위터 공유 정보모음
- 웹표준KR
- 치우의 컴맹탈출구
- Dev. Cheat Sheets
- w3schools
- Dev. 조각들
- ASP Ajax Library
- CSS Tricks
- WebResourcesDepot
- jQuery Selectors Tester
- DeveloperSnippets
- Smashing Magazine
- Nettuts+
- devListing
- 웹 리소스 사이트(한)
- Mobile tuts+
- Dream In Code
- Developer Tutorials
- CSS3 Previews
- 자북
- 안드로이드 사이드
- Code Visually
- Code School
- SQLer.com
- 무료 파워포인트 템플릿
- iconPot
- Free PowerPoint Templates
- Design Bombs
- Web Designer Wall
- 1st Webdesigner
- Vandelay Design
- 무료 벡터 이미지 사이트들
- Tripwire Magazine
- Web TrendSet
- WebMonkey
- 윤춘근 프리젠테이션 디자이너 블로그
- cz.cc 무료 DNS
- [웹하드] MediaFire
- [웹하드] DivShare
- 한컴 인터넷 오피스
- Debug
- nginx
- Prototype
- javascript
- 안드로이드
- Docker
- JSON
- Chrome
- classic asp
- Mac
- Wordpress
- Linux
- nodejs
- CSS
- IOS
- Android
- iphone
- mssql
- IE
- 한글
- sencha touch
- centos
- JQuery
- iis
- 워드프레스
- laravel
- API
- PHP
- git
- ASP
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |