p.472의 수정내용에 대해 질문이 있습니다. > QnA

본문 바로가기
사이트 내 전체검색

QnA

안드로이드 p.472의 수정내용에 대해 질문이 있습니다.

페이지 정보

profile_image
작성자 코쟁이
댓글 4건 조회 71회 작성일 21-01-08 19:13

본문

댓글목록

profile_image

Scott님의 댓글

Scott 작성일

위의 줄은 Room 데이터베이스의 값을 지우는 것이고,
아래 것은 현재 메모리에 올라가 있는 컬렉션의 값을 지우는 것입니다.

비효율적이라고 보일 수 있지만,
CPU 는 메모리의 값만 처리할 수 있고, 파일의 값은 처리할 수 없습니다.

데이터베이스 자체가 일종의 파일이기 때문에,
데이터베이스(파일)에서 데이터들을 읽은 후에
컬렉션의 형태로 메모리에 로드해서 사용하는 것입니다.

profile_image

코쟁이님의 댓글의 댓글

코쟁이 작성일

제가 이해가 되서 이대로 해봤습니다. 그런데 수정 후 코드에서 mMemo를 지정하는 변수가 없다고 가이드가 뜨는데 어떻게 하죠? mMemo도 mRoomMemo로 전부 바뀌어서 그런것 같은데 위에다가 mMemo를 따로 추가적으로 변수선언을 해야할까요? (mMemo 뒤에!!도 그대로 붙였습니다.)

profile_image

Scott님의 댓글의 댓글

Scott 작성일

아 그러고 보니 책에 해당 아답터의 전체 코드가 없군요.
아래가 아답터의 전체 코드 입니다.
보시면 Holder 클래스의 최상단에 mMemo 가 변수로 미리 선언되어 있습니다.
-------------------------------------------------------
class RecyclerAdapter : RecyclerView.Adapter<RecyclerAdapter.Holder>() {
    var helper:RoomHelper? = null
    var listData = mutableListOf<RoomMemo>()
    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): Holder {
        val view = LayoutInflater.from(parent.context)
            .inflate(R.layout.item_recycler, parent, false)
        return Holder(view)
    }
    override fun getItemCount(): Int {
        return listData.size
    }

    override fun onBindViewHolder(holder: Holder, position: Int) {
        val memo = listData.get(position)
        holder.setMemo(memo)
    }

    inner class Holder(itemView: View) : RecyclerView.ViewHolder(itemView) {
        var mMemo:RoomMemo? = null
        init {
            itemView.buttonDelete.setOnClickListener {
                helper?.roomMemoDao()?.delete(mMemo!!)
                listData.remove(mMemo)
                notifyDataSetChanged()
            }
        }
        fun setMemo(memo:RoomMemo) {
            itemView.textNo.text = "${memo.no}"
            itemView.textContent.text = memo.content
            val sdf = SimpleDateFormat("yyyy/MM/dd hh:mm")
            // 날짜 포맷은 SimpleDateFormat으로 설정합니다.
            itemView.textDatetime.text = "${sdf.format(memo.datetime)}"

            this.mMemo = memo
        }
    }
}

profile_image

코쟁이님의 댓글의 댓글

코쟁이 작성일

답변 감사합니다.

회원로그인

회원가입

Site info.

Team Flow9
Address : 10, Gukjegeumyung-ro, Yeongdeungpo-gu, Seoul, Republic of Korea
Contact : flow9.net@gmail.com

접속자집계

오늘
95
어제
298
최대
411
전체
57,917
Copyright © flow9.net All rights reserved.