상세 컨텐츠

본문 제목

[안드로이드 코틀린] RecyclerView 다중 선택 삭제하는 방법

안드로이드

by aries574 2022. 9. 23. 14:46

본문


이번 시간에는 다중 선택에 이어서 다중 삭제하는 방법에 대하여 알아보겠습니다.

이전 포스팅에 이어서 하니 아래 포스팅을 먼저 보시고 오시면 됩니다.

2022.09.22 - [안드로이드] - [안드로이드 코틀린] RecyclerView 다중 선택 색상 변경하는 방법

 

[안드로이드 코틀린] RecyclerView 다중 선택 색상 변경하는 방법

이번 시간에는 RecyclerView로 만든 리스트의 아이템 다중 선택하는 방법을 알아보겠습니다. 목차 1. 실행 화면 2. 아이템 클래스 Item.kt 3. 아이템 화면 list_item.xml 4. 아이템 어댑터 ItemAdapte..

aries574.tistory.com


목차

1. 실행 화면
2. 메인 화면 activity_main.xml
3. 메인 코드 MainActivity.kt


1. 실행 화면

 


2. 메인 화면 activity_main.xml

- 설명 -

 1. 다중 선택된 아이템 삭제하는 Button

 2. android:layout_weight

   레이아웃 비율 설정

 3. android:layout_centerInParent="true"

   부모 창 정중앙에 위치

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity">

    <androidx.recyclerview.widget.RecyclerView
        android:id="@+id/recyclerView"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="8" />

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="2">

        <Button
            android:id="@+id/deleteBtn"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerInParent="true"
            android:text="삭제"/>
    </RelativeLayout>
</LinearLayout>

 


3. 메인 코드 MainActivity.kt

- 설명 -

 1. itemList, adapter 전역 변수로 변경

 2. deleteItem()

   선택된 아이템 삭제하는 함수

 3. for( (index, item) in itemList.withIndex().reversed())

   index: 위치 값

   item: 데이터

   itemList.withIndex().reversed(): 위치 값 역순

class MainActivity : AppCompatActivity() {

    private lateinit var itemList: ArrayList<Item>
    private lateinit var adapter: ItemAdapter

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        //초기화
        val recyclerView: RecyclerView = findViewById(R.id.recyclerView)
        adapter = ItemAdapter(getData())

        //recyclerView 설정
        recyclerView.layoutManager = LinearLayoutManager(this)
        recyclerView.adapter = adapter

        val deleteBtn: Button = findViewById(R.id.deleteBtn)
        //삭제 이벤트
        deleteBtn.setOnClickListener {
            //아이템 삭제
            deleteItem()
        }
    }

    @SuppressLint("NotifyDataSetChanged")
    private fun deleteItem(){

        //리스트에서 선택된 아이템 삭제( index: 위치값, item: 아이템)
        //withIndex.reversed: 역순
        for( (index, item) in itemList.withIndex().reversed()){

            //아이템 담기
            val item: Item = item

            //아이템이 선택되었다면
            if(item.selected){

                //해당 아이템 삭제
                itemList.removeAt(index)
            }
        }

        //적용
        adapter.notifyDataSetChanged()
    }

    /**
     * 데이터 생성
     */
    private fun getData(): ArrayList<Item>{

        itemList = ArrayList()

        for( index in 1..10){

            itemList.add(Item("$index 번째 아이템", false))
        }

        return itemList
    }
}

2022.09.21 - [안드로이드] - [안드로이드 코트린] SharedPreferences 간단한 데이터 저장하는 방법

 

[안드로이드 코트린] SharedPreferences 간단한 데이터 저장하는 방법

이번 시간에는 앱에서 아이디, 패스워드를 한번 입력하면 나중에 들어왔을 때 정보가 사라지지 않는 방법을 알아보겠습니다. 목차 1. 실행 화면 2. 메인 화면 activity_main.xml 3. 메인 코드 MainA

aries574.tistory.com

2022.09.20 - [안드로이드] - [안드로이드 코틀린] 코드(MainActivity)에서 배경 색상 바꾸는 다양한 방법

 

[안드로이드 코틀린] 코드(MainActivity) 에서 배경 색상 바꾸는 다양한 방법

이번 시간에는 코드(MainActivity)에서 텍스트뷰 색상을 다양하게 변경하는 방법을 알아보겠습니다. 목차 1. 실행 화면 2. 메인 화면  activity_main.xml 3. 메인 코드  MainActivity.kt 1. 실행 화..

aries574.tistory.com

2022.09.13 - [안드로이드] - [안드로이드 코틀린] 액티비티(Activity) 뒤로 가기 버튼 만드는 방법

 

[안드로이드 코틀린] 액티비티(Activity) 뒤로가기 버튼 만드는 방법

이번 시간에는 액티비티(Activity) 이동 후에 다시 이전 화면으로 돌아가는 방법을 알아보겠습니다. 목차 1. 실행 화면 2. 액티비티 만들기 3. 환경 설정 파일 AndroidManifest.xml 4. 메인 화면 acti

aries574.tistory.com

 

 

반응형

관련글 더보기

댓글 영역