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

Collections.sort 정렬하는것좀 도와주세요.

0 추천
현재 db에서 '좋아요'순으로 정렬해서 높은수에서 낮은수로 차례대로 리스트뷰에 뿌려지게 하려고합니다.

Collections.sort를 사용했는데 먹히질않아요....뭐가문제인가요?

    protected void showList(){
        try {
            JSONObject jsonObj = new JSONObject(myJSON);
            peoples = jsonObj.getJSONArray(TAG_RESULTS);
            ArrayList<String> strList = new ArrayList<String>() ;   <--좋아요수를 담을 어레이리스트.

            for(int i=0;i<peoples.length();i++){

                JSONObject c = peoples.getJSONObject(i);
                String no = c.getString(TAG_NO);            
                String likes= c.getString(TAG_LIKES);

                strList.add(likes);            <--좋아요수 를 어레이에 저장.
                Log.d("sort",strList+"");     <-- 로그를 통해서 확인결과 [0, 0, 1, 1, 1, 2, 3, 4, 62, 0] <-제대로 찍힙니다.          

                HashMap<String,String> persons = new HashMap<String,String>();
                persons.put(TAG_NO,no);             
                persons.put(TAG_LIKES,likes);
                personList.add(persons);
                final Comparator<String> myComparator= new Comparator<String>(){
                    private final Collator collator = Collator.getInstance();
                    @Override
                    public int compare(String o1, String o2) {
                        return o1.compareTo(o2);
                    }
                };
                Collections.sort(strList ,myComparator);
                for (String str : strList) {
                    Log.d("str",str);
                    //System.out.println(str) ;
                }
            }

            final ListAdapter adapter = new SimpleAdapter(

                    Main_Page.this, personList,
                    R.layout.list_item,
                    new String[]{TAG_NAME,,TAG_LIKES},
                    new int[]{ R.id.name,,R.id.textlike}

            )
신입생 (510 포인트) 님이 2016년 10월 25일 질문
DB에서 가져올때 정렬해서 가져오시면 안되는건가요?

1개의 답변

0 추천
비교를 문자열 상태로 비교를 하네요.

문자열 상태를 비교하시면 예를들어 리스트에

1, 2, 3,4,5,6,7,8,9,10 이렇게 들어가 있을때

1,10,2,3,4,5,6,7,8,9 이렇게 정렬 될거에요.

strList에 들어가 있는 값들을 int형으로 바꾸셔야 합니다.
Development Guy (70,570 포인트) 님이 2016년 10월 25일 답변
...