마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

MediaStore의 파일들을 꼭 getView 메소드를 통해서 보여줘야 하나요?

0 추천

MediaStore로 비디오 파일이든 오디오 파일이든... 아무튼 파일들을 얻은후 ArrayAdapter를 상속하는 클래스를 작성하면 getView 메소드를 이용해 보여주게 됩니다.

그런데 이런저런 예제 파일들을 찾으면서 확인해보니 한가지 의문점이 생겼습니다.

ArrayAdapter, getView 메소드를 사용하게 되면 모든(여기선 비디오라고 가정하겠습니다) 비디오 파일들을 표시해줄순 있지만, [ 폴더 - 파일리스트 ] 형태론 불가능 한것같습니다. 거기에 ViewHolder까지 지정해주고 있으니... 게다가 ArrayList<클래스이름>의 형식도... 꼭 필요하다고 생각되지도 않습니다.  

폴더 리스트에선 이미지 리소스를 표시하게 될테고, 폴더안에 비디오들은 썸네일을 표시해줘야 할텐데 getView 메소드를 사용할때 그것이 가능할지가 의문입니다...

요점을 말하자면, 제가 구현하고 싶은건 스마트폰 내의 모든 비디오 폴더들을 표시해주고 그것을 클릭하면 그 폴더의 비디오들을 표시해주는 것인데... 단지... ArrayList안에 파일들을... getView 메소드를 통해 보여줄 필요가 있는지 궁금합니다.

CEL (1,140 포인트) 님이 2014년 1월 23일 질문

1개의 답변

+1 추천
 
채택된 답변
ListView 같은 레이아웃 자체는 실제 보여주기만 하는 껍데기부분이고 (뷰가 보여지는 영역 할당)

Adapter가 구현이 되어야 하죠.그 안에서 모든 데이터 관리를 합니다. 그 중 getView()가 ListVIew에 뿌려주는 필수

method고요..이 데이터들은 배열로 넘어오는데 ArrayList가 보통 사용됩니다. ArrayList<클래스> 는 취향대로 쓰시면 되고

ArrayList<String>같은걸로 쓰셔도 상관 없습니다.

질문하신 부분에서는 ListView에 폴더명을 뿌려주고

ListItem클릭 시 GridView를 불러 썸네일을 표시 해 주시면 됩니다. GridView를 위한 Adapter는 따로 만드셔야하고요
노예의집 (23,370 포인트) 님이 2014년 1월 23일 답변
CEL님이 2014년 1월 23일 채택됨
아아... ArrayAdapter 를 상속하는 클래스를 2개 이상 만들어도 된다는 말씀 이신가요?

그러니까... 음...
class AAA extends ArrayAdapter<String>
.
.

이렇게 2개 이상 어댑터를 사용할 수 있다는 것인가요?
네~ 가능합니다.
각각 용도가 다른 Adapter이면 2개 이상으로 만들어서
ListView에 적용시키면 됩니다. 적용은 1개씩만 되고요~
아니명 Adapter내에 flag를 넘겨 분기문 처리 할 수도있고요.
괜히 쓸데없는 걱정을 한 것같네요...
답변 정말로 감사드립니다. <클래스> 대신에 <String>을 이용해서 표시해주니... ViewHolder 부분하고... 고쳐야할 부분이 좀 생겨났네요 하하...

다시한번 정말로 답변 감사드립니다.
...