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

안드로이드 리사이클러뷰 아이템 중복됨

0 추천
locationlineup.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        Comparator<LocationItem> lineup = new Comparator<LocationItem>() {
            @Override
            public int compare(LocationItem o1, LocationItem o2) {
                int ret;

                if (o1.getMember_distance() < o2.getMember_distance()) {
                    ret = -1;
                }
                else if (o1.getMember_distance() == o2.getMember_distance()) {
                    ret = 0;
                }
                else {
                    ret = 1;
                }
                return ret;
            }
        };

        Collections.sort(mArrayList, lineup);
        mAdapter.notifyDataSetChanged();
    }
});
이렇게 하면 제가 의도한대로 실행은 잘되는데
이상하게 똑같은 아이템이 두개씩 중복되서 나타나네요...
김가영
김가영
이바비
이바비
이런식으로요 뭐가 문제죠?
익명사용자 님이 2019년 6월 4일 질문

1개의 답변

0 추천
초기화 문제인 것 같습니다.

리사이클러뷰 새로 만드실때 기존거를 초기화 해야합니다.

저도 같은문제였는데 리사이클러뷰에 담길 아이템을 초기화 하니 해결 되었습니다.
개발러a (560 포인트) 님이 2019년 6월 4일 답변
답변 감사합니다.
기존거만 어떻게 초기화하죠?
mArrayList.clear();
이걸 추가하니까 아예 싹 다날라가서요.
예를들어
 private ArrayList<item> itme = new ArrayList<>();
리사이클러뷰에 들어갈 아이템 생성하였던것처럼
원하는 시점에 itme = new ArrayList<>(); 형태로 초기화를 해주면
됩니다.
...