안드로이드에서 RecyclerView 항목을 제거하기 위한 방법에는 여러가지가 있다.
그 중에서도 가장 세련된 방법들 중 하나로 채택되는 것이 Swipe to Delete 방식이다.
이것에 대해 간단히 포스팅하고, 추후에 내용을 덧붙일 예정이다.
우선, RecyclerView와 RecyclerAdapter가 선언되어 있는 상황을 가정하고 설명하겠다.
ItemTouchHelper.SimpleCallback simpleItemTouchCallback = new ItemTouchHelper.SimpleCallback(0, ItemTouchHelper.LEFT | ItemTouchHelper.RIGHT) {
@Override
public boolean onMove(@NonNull RecyclerView recyclerView, @NonNull RecyclerView.ViewHolder viewHolder, @NonNull RecyclerView.ViewHolder target) {
return false;
}
@Override
public void onSwiped(@NonNull RecyclerView.ViewHolder viewHolder, int direction) {
final int position = viewHolder.getAdapterPosition();
infos.remove(position);
adapter.notifyItemRemoved(position);
}
};
우선, 액티비티 클래스 내에 위와 같이 simpeItemTouchCallback을 선언한다.
infos는 ArrayList 객체로써 adapter에 달려있는 배열이다.
그리고 아래 코드처럼 attach 해주면 적용된다.
recyclerView = (RecyclerView)findViewById(R.id.playerRecyclerView);
recyclerView.setHasFixedSize(true);
layoutManager = new StaggeredGridLayoutManager(1, StaggeredGridLayoutManager.VERTICAL);
recyclerView.setLayoutManager(layoutManager);
adapter = new MyRecyclerAdapter(infos);
recyclerView.setAdapter(adapter);
ItemTouchHelper itemTouchHelper = new ItemTouchHelper(simpleItemTouchCallback);
itemTouchHelper.attachToRecyclerView(recyclerView);
맨 아래 두 줄이 추가한 내용이다.
'Android' 카테고리의 다른 글
Android Studio Exceptions 정리 및 해결방법 (0) | 2019.07.15 |
---|---|
Android Intent 전환 (액티비티 전환) (0) | 2019.07.15 |
Android AsyncTask 사용법 (0) | 2019.07.14 |
Android 파일 입출력 및 권한 요청 (0) | 2019.07.14 |
Android CardView 사용법 (0) | 2019.07.13 |