최근에 기본적인 TreeView 예제를 정리했었습니다. [안드로이드] RecyclerView 를 활용한 TreeView 예제 추가로 기존에 만들었던 TreeView 를 활용해서 파일 탐색기 예제를 만들었습니다. (TreeView 하면서 삽질했던게 ...

[안드로이드] TreeView 를 활용한 파일탐색기(File Explorer) 예제

 

최근에 기본적인 TreeView 예제를 정리했었습니다.

[안드로이드] RecyclerView 를 활용한 TreeView 예제

추가로 기존에 만들었던 TreeView 를 활용해서 파일 탐색기 예제를 만들었습니다.

(TreeView 하면서 삽질했던게 있어서... 그냥 끝내기는 아쉬운게 있더라구요.)

(짬시간에 TreeView 활용한 파일탐색기 예제까지하고 마무리합니다..ㅎㅎ)

 

주요 목표는 사용자에게 특정 경로에 대한 폴더 트리를 보여주고, 

선택한 파일들을 가져올 수 있게 하려고 합니다.

 

 

 

 

1.  파일 탐색기 예제




2. 파일 탐색기 예제 다운로드

파일 탐색기 예제 다운로드




3.  목표 체크

 - 특정 경로에 대한 폴더 트리를 보여주기

 - 선택한 파일들을 가져오기

  

특정 경로에 대한 Node 를 만들고 adapter 와 연결해서 폴더트리를 보여줍니다.

(아래 코드는 MainActivity 의 일부입니다.)

private fun initFileExplorer() {

val download = File("/sdcard/Download")
getTreeNode(download)?.let { nodes.add(it) }

val picture = File("/sdcard/DCIM")
getTreeNode(picture)?.let { nodes.add(it) }

val music = File("/sdcard/Music")
getTreeNode(music)?.let { nodes.add(it) }

val movies = File("/sdcard/Movies")
getTreeNode(movies)?.let { nodes.add(it) }

adapter = TreeNodeAdapter(nodes)
binding.rvTreeView.adapter = adapter
}


버튼 리스너를 통해 선택한 파일들을 가져올 수 있습니다.

(아래 코드는 MainActivity 의 일부입니다.)

binding.btnGetFiles.setOnClickListener {
val selectedNodes = adapter?.getSelectedNodes()
val selectedFiles = ArrayList<File>()
selectedNodes?.forEach { treeNode ->

// selected files
if (treeNode.isLeaf()) {
System.err.println("selected file name ${treeNode.getFile().name}")
selectedFiles.add(treeNode.getFile())
}
}

Toast.makeText(this, "selected file count : ${selectedFiles.size}", Toast.LENGTH_SHORT).show()
}




[Related post]

[안드로이드] RecyclerView 를 활용한 TreeView 예제

 

 

 

 

0 comments: