Seize the day

POST : Android Dev Study

in app DatabaseViewerActivity 구현하기

app을 개발하다 보면 db파일에 실제로 저장되어 있는 내용을 보고싶을 때가 있다. 하지만 db파일의 내용을 직접 보려면 권한때문에 일단 db 파일을 폰에서 PC로 복사를 해야하고, 값을 변경해서 다시 폰에 저장하기도 상당히 귀찮은 과정이다. 그래서 앱 안에서 바로 db의 table을 선택해서 내용을 보고, 검색도 하고, 수정도 하고, 지우기도 할 수 있다면 개발과 테스트의 생산성이 높아진다. 


그래서 구현한 DatabaseViewerActivity의 최종 모습은 이렇게 된다. 여기에 올려진 소스는 1주일 정도 공부하면서 다듬어진 소스이다. 




요구사항:

- 목록의 첫번째 Row와 첫번째 Column은 고정되어, 좌우 상하 스크롤되어도 변경되지 않아야 한다. 

- 처음에 테이블을 선택할 수 있고, Tables을 눌러서 다시 선택할 수 있다. 비동기 로드, 로드중에 프로그래스 다이얼로그 표시한다. 

- 목록은 짝수, 홀수 Row 여부에 따라서 구별하기 싶도록 배경색이 달라야 한다.

- 타이틀을 Long click하면 Row를 삭제할 수 있다.

- 값 영역을 Long click하면 Copy value 혹은 Edit value할 수 있어야 한다. 

- 목록은 30개 단위로 로드하고, MORE를 누르면 다음 30개를 로드한다. 더 로드할 것이 없다면 MORE는 disable된다. (Table의 View adapter 설정을 할 수 없기에 Row를 추가하는데 시간이 많이 걸림)

- SE를 누르면 검색할 Field를 선택하고, 검색어를 입력하여 검색을 할 수 있다.


일단 첫 번째 Column과 Row를 고정하기 위해서 외부에서 구현한 소스를 이용했다.  참고소스 

클래스 이름을 TableExLayout으로 바꾸고, Row의 생성을 TableExRowHolder 인터페이스로 분리를 시켰다. 


TableExRowHolder 소스


TableExLayout 소스



테이블 row 한 줄의 view를 생성하고 관리한다. 간단히 TextView로 구성했다.

DatabaseRowHolder 소스



DatabaseViewerActivity 소스


top

posted at

2015. 8. 24. 21:21


CONTENTS

Seize the day
BLOG main image
김대정의 앱 개발 노트와 사는 이야기
RSS 2.0Tattertools
공지
아카이브
최근 글 최근 댓글
카테고리 태그 구름사이트 링크