반응형
List의 데이터를 정렬함.
2개의 데이터를 비교(파일, 폴더 구분, 이름)
private ListView lvListView;
private ArrayList arrFileData;
lvListView = (ListView)findViewById(R.id.lvListView);
//정렬 비교 로직(폴더 파일 오름 차순 )
private Comparator folderNfileSorting = new Comparator() {
@Override
public int compare(FileData data1, FileData data2) {
int result ;
if (data1.getIsFile() < data2.getIsFile())
result = -1;
else if (data1.getIsFile() == data2.getIsFile())
result = data1.getName().compareTo(data2.getName()) ;
else
result = 1;
return result ;
}
} ;
protected void ListView()
{
adp = new FileTreeListViewAdapter(arrFileData);
lvListView.setAdapter(adp);
//리스트뷰의 아이템을 클릭시 해당 아이템의 문자열을 가져오기 위한 처리
lvListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int position, long id) {
Log.d("Data", ((FileData)adapterView.getItemAtPosition(position)).getName());//로그 남기기
//텍스트뷰에 출력
tvTest.setText("결과 : " + ((FileData)adapterView.getItemAtPosition(position)).getName());
File directory = new File(((FileData)adapterView.getItemAtPosition(position)).getFullDir());
File[] files = directory.listFiles();
arrFileSub = new ArrayList();
for (File f : files) {
String strName = f.getName();
String strFullDir = f.getAbsolutePath();
FileData fd = new FileData(strName, strFullDir, f.isFile() ? 1 : 0);
arrFileSub.add(fd);
}
Collections.sort(arrFileSub, folderNfileSorting) ; //상단에 정의
FileTreeListViewAdapter adpSub = new FileTreeListViewAdapter(arrFileSub);
lvListView.setAdapter(adpSub);
}
});
}
반응형
'Android' 카테고리의 다른 글
Bluetooth file & text transfer #2 server (4) | 2021.03.17 |
---|---|
Bluetooth file & text transfer #1 etc (6) | 2021.03.17 |
Android Error Message (2) | 2021.01.01 |
자주 쓰는 코드 모음. (4) | 2020.10.30 |
Timer (3) | 2020.10.14 |
댓글