커스텀 다이얼로그에서 삭제버튼을 누르면 파이어베이스에서 key값을 가져와서 삭제하는 코드를 작성하는 중에
"lateinit property key has not been initialized" 이런 오류가 발생했다
초기화 오류가 발생한것이다.
아래코드처럼 써져있어서 해당 오류가 발생했다
class BoardInsideActivity : AppCompatActivity() {
// key값 선언
private lateinit var key : String
private val TAG = BoardInsideActivity::class.java.simpleName
private lateinit var binding: ActivityBoardInsideActiviyBinding
private val boardList = mutableListOf<CommunityBoardModel>()
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = DataBindingUtil.setContentView(this, R.layout.activity_board_inside_activiy)
// threedot클릭시
binding.threedot.setOnClickListener {
// 텍스트 집어넣기
val message: String? = "게시글 수정,삭제하기"
// 다이얼로그 표시
showDialog(message)
}
// CommunityFragment에서 보낸 key데이터 받아오기
val key = intent.getStringExtra("key")
// getBoardData함수 실행
getBoardData(key.toString())
}
..
// 다이얼로그 보여주는 함수
private fun showDialog(message:String?) {
val dialog = Dialog(this)
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE) //타이틀바 제거
dialog.setContentView(R.layout.activity_community_dialog) //다이얼로그에 사용할 xml 파일을 불러옴
dialog.window?.setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT)) // 레이아웃 배경을 투명하게
val dialogTitle : TextView = dialog.findViewById(R.id.dialogTitle)
val editBtn : Button = dialog.findViewById(R.id.dialog_edit_btn)
val deleteBtn : Button = dialog.findViewById(R.id.dialog_delete_btn)
// dialogTitle와 message 연결
dialogTitle.text = message
// 수정버튼 눌렀을때
editBtn.setOnClickListener {
Toast.makeText(this, "수정버튼 누름", Toast.LENGTH_SHORT).show()
}
// 삭제버튼 눌렀을때
deleteBtn.setOnClickListener {
// 파이어베이스에 communityboard안에 key값을 찾아와서 삭제
FBRef.communityboardRef
.child(key)
.removeValue()
// Toast.makeText(this, "삭제완료", Toast.LENGTH_SHORT).show()
finish() // 엑티비티 종료
}
dialog.show()
}
}
오류발생 코드
onCreate함수에서 key값을 받아오는 부분의 val값을 삭제해주면 오류가 해결되서 삭제가 잘 되는것을 확인할수있다
// CommunityFragment에서 보낸 key데이터 받아오기
key = intent.getStringExtra("key").toString()
// getBoardData함수 실행
getBoardData(key)
수정 코드
'개발 노트 > Kotlin' 카테고리의 다른 글
[Kotlin] LinerLayout 왼쪽 정렬, 오른쪽 정렬 (0) | 2024.02.22 |
---|---|
ScrollView 사용하기 (0) | 2024.02.22 |
Custom Dialog 만들기 (1) | 2024.02.21 |
RecyclerView 클릭 이벤트 처리 (0) | 2024.02.21 |
[Kotlin] 에러 - No layout manager attached; skipping layout (0) | 2024.02.18 |