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

ArrayAdapter 의 내용을 비교, 정렬하고 싶습니다.

0 추천

안녕하세요, 카메라 해상도 목록을 구성하고 있습니다.

ArrayAdapter<String> adapter 를 만들고

adapter.add("1280*720"+"(0.9M));
이런식으로 ArrayAdapter에 데이터를 추가해주었는데요.
 
mCamera.getParameters().getSupportedPictureSizes()들의 목록에서 뽑아오는건데
이게 또 큰 순서대로 있는게 아니더라구요.
 
그러다보니 데이터 추가 후 리스트를 확인해보면
960*720 (**M)
720*480  (**M)
640*480  (**M)
1920*1080  (**M)
1280*720  (**M)
 
이렇게 나오더라구요.
 
그래서 
adapter.sort(new Comparator<String>() {
 
public int compare(String lhs, String rhs) {
// return c.compare(lhs, rhs); // 올림차순 정렬(ㄱ,ㄴ,ㄷ...ㅎ)
return c.compare(rhs, lhs); // 내림차순 정렬(ㅎ,ㅍ,ㅌ...ㄱ)
}
});
 
위의 코드를 이용해서 정렬을 하려고 했는데
제가 ArrayAdapter에 추가한건 숫자가 아닌 문자열 형태이잖아요,
그럴 경우에 특수문자도 있고해서 그런지 정상적으로 정렬이 안될 것 같아서요.
그래서 그냥 저 sort 메소드 써보긴 했지만 역시나 효과는 없었습니다.
 
이런 경우는 어떤 식으로 비교 정렬을 해줘야 할까요?
 

 

뇽디 (1,880 포인트) 님이 2014년 6월 16일 질문
본인이 넣으셨다면 String 값의 일부 내용을 가지고 숫자로 치환해서 검사해도 될듯 한데요.
ex) Integer.valueOf(lhs.subString(0, lhs.indexOf("*"))) > Integer.valueOf(rhs.subString(0, rhs.indexOf("*")))
오 감사합니다. 한번 해보겠습니다!! 감사합니다!!

1개의 답변

0 추천
단순히 화면의 가로 또는 세로의 크기만 뽑아내어 정렬하면 될 것으로 생각됩니다.
인연 (31,880 포인트) 님이 2014년 6월 16일 답변
감사합니다!!
한번 해보겠습니다!!
...