본문 바로가기
안드로이드 스튜디오 앱 개발/개념 안드로이드 스튜디오

안드로이드 스튜디오 리사이클러뷰 아이템 전체 삭제 clear() [Android Studio]

by 망댕이 2023. 6. 19.
반응형

초기화 버튼을 눌렀을 때 recyclerView에 있는 아이템들이

전체 삭제가 되도록 하는 코드에 대해 알아보겠습니다.

 

우선 Adapter에서 새로운 함수를 하나 만들어야 합니다.

clearAll이라는 함수 이름으로 recyclerView에 존재하는 아이템을 모두 삭제시키는 함수로 만들어봅시다.

 

public class NumberAdapter extends RecyclerView.Adapter<NumberAdapter.ViewHolder>{
    ArrayList<Number> numbers = new ArrayList<Number>();

    @NonNull
    @Override
    public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        LayoutInflater inflater = LayoutInflater.from(parent.getContext());
        View itemView = inflater.inflate(R.layout.number_item, parent, false);

        return  new ViewHolder(itemView);
    }

    public void clearAll(){
        numbers.clear();
        notifyDataSetChanged();
    }

 

ArrayList<Number> numbers = new ArrayList<Number>()의

Number는 Number.class로 리사이클러뷰에 뜨는

각 아이템의 데이터를 담아둘 클래스입니다.

 

https://mangdang2468.tistory.com/13

 

안드로이드 스튜디오 리사이클러뷰 만들기 [Android Studio]

애플리케이션을 이용하면서 몇 가지의 아이템(항목)들이 리스트로 하여금 세로로 드래그하여 넘길 수 있는 화면을 많이 보았을 것입니다. 예를 들어 카카오톡의 채팅 화면에서 하나의 뷰에 단

mangdang2468.tistory.com

 

그리고 새롭게 만든 함수 public void clearAll(){} 안에 numbers.clear()를 입력하면

clearAll()이 호출되었을 때 리사이클러뷰 안에 있는 아이템들이 모두 제거됩니다.

 

그런데 numbers.clear()를 분명히 입력하였는데 리사이클러뷰의 아이템이

제거가 되는 것이 눈으로 확인되지 않는다면

notifyDataSetChanged()를 빼먹었을 수도 있습니다.

 

notifyDataSetChanged()는 RecyclerView가 갱신시켜줍니다.

numbers.clear() 후 recyclerView를 갱신하여

recyclerView에서 아이템이 제거되는 것을 보여줍니다.

 

이제 버튼을 클릭했을 때 NumberAdapter의 clearAll()이 호출되도록 만들어주기만 하면 됩니다.

 

NumberAdapter adapter = new NumberAdapter();

button_reset.setOnClickListener(new View.OnClickListener() {
      @Override
      public void onClick(View view) {
           adapter.clearAll();
      }
});

이렇게 작성하면 버튼(button_reset)을 눌렀을 때 recyclerView의 아이템이 전체 삭제가 됩니다.

 

리사이클러뷰에 들어있는 1~8번까지의 아이템이

설정 초기화 버튼을 클릭함으로써 전체 삭제가 되고 리사이클러뷰가 갱신이 되어

리사이클러뷰 안에는 아무것도 없는 상태가 된 것을 확인할 수 있습니다.

 

반응형