이번 시간에는 ToDo List 만들기 두 번째 시간 할 일 화면과 어댑터 클래스를 만들어 보겠습니다.
이전 포스팅은 아래 링크를 들어가시면 됩니다.
2022.09.15 - [안드로이드] - [안드로이드 코틀린] SQLite ToDo List 만드는 방법 part2 - 할 일 화면과 어댑터 클래스
[안드로이드 코틀린] SQLite ToDo List 만드는 방법 part2 - 할 일 화면과 어댑터 클래스
이번 시간에는 ToDo List 만들기 두 번째 시간 할 일 화면과 어댑터 클래스를 만들어 보겠습니다. 목차 1. 할 일 화면 task_item.xml 2. 어댑터 클래스 ToDoAdapter.kt 1. 할 일 화면 task_item.xml..
aries574.tistory.com
- 설명 -
1. 할 일 목록을 보여주는 화면
2. 할 일을 보여주는 CheckBox
<?xml version="1.0" encoding="utf-8"?>
<androidx.cardview.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="16dp"
android:layout_marginVertical="8dp"
app:cardCornerRadius="8dp"
app:cardElevation="4dp">
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="8dp">
<CheckBox
android:id="@+id/m_check_box"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:buttonTint="@android:color/holo_green_dark"
android:text="This is Sample Task"/>
</RelativeLayout>
</androidx.cardview.widget.CardView>
- 설명 -
1. 데이터와 화면을 연결해주는 어댑터 클래스
2. constructor(db: ToDoDB) : this()
생성자. 어댑터 생성 시 db 정보 받음
3. onCreateViewHolder
화면 설정
4. onBindViewHolder
데이터 설정
5. getItemCount()
데이터 개수 가져오는 함수
6. setTasks
할 일 리스트에 담는 함수
7. removeItem
할 일 삭제하는 함수
class ToDoAdapter(): RecyclerView.Adapter<ToDoAdapter.ViewHolder>() {
lateinit var mDb: ToDoDB
constructor(db: ToDoDB): this(){
mDb = db
}
var todoList: ArrayList<ToDoModel> = ArrayList()
/**
* 화면 설정
*/
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
val inflater: LayoutInflater = LayoutInflater.from(parent.context)
val view: View = inflater.inflate(R.layout.task_item, parent, false)
return ViewHolder(view)
}
/**
* 데이터 설정
*/
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
//아이템 담기
val item: ToDoModel = todoList[position]
//할일 내용
holder.mCheckBox.text = item.task
//상태값이 0이 아니면 체크
holder.mCheckBox.isChecked = toBooelan(item.status)
//체크박스 체크 이벤트
holder.mCheckBox.setOnCheckedChangeListener(object: CompoundButton.OnCheckedChangeListener{
override fun onCheckedChanged(comButton: CompoundButton?, isCheck: Boolean) {
//체크 상태면 1 아니면 0
if(isCheck){
mDb.updateStatus(item.id, 1)
}else{
mDb.updateStatus(item.id, 0)
}
}
})
}
/**
* 상태값으로 체크상태 알아내기
* 상태값이 0이 아니면 true 0이면 false
*/
private fun toBooelan(n: Int) = n != 0
/**
* 데이터 갯수 가져오기
*/
override fun getItemCount(): Int = todoList.size
/**
* 할 일 목록 담기
*/
fun setTask(todoList: ArrayList<ToDoModel>){
this.todoList = todoList
notifyDataSetChanged()
}
/**
* 할 일 삭제
*/
fun removeTask(position: Int){
todoList.removeAt(position)
notifyItemRemoved(position)
}
class ViewHolder(view: View): RecyclerView.ViewHolder(view){
val mCheckBox: CheckBox = view.findViewById(R.id.m_check_box)
}
}
2022.09.13 - [안드로이드] - [안드로이드 코틀린] 액티비티(Activity) 뒤로 가기 버튼 만드는 방법
[안드로이드 코틀린] 액티비티(Activity) 뒤로가기 버튼 만드는 방법
이번 시간에는 액티비티(Activity) 이동 후에 다시 이전 화면으로 돌아가는 방법을 알아보겠습니다. 목차 1. 실행 화면 2. 액티비티 만들기 3. 환경 설정 파일 AndroidManifest.xml 4. 메인 화면 acti
aries574.tistory.com
2022.09.08 - [안드로이드] - [안드로이드 코틀린] 달력(DatePicker) 코드에서 호출하는 방법
[안드로이드 코틀린] 달력(DatePicker) 코드에서 호출하는 방법
이번 시간에는 달력(DatePicker)을 화면이 아니라 코드에서 호출하는 방법을 알아보겠습니다. 목차 1. 실행 화면 2. 메인 화면 activity_main.xml 3. 메인 코드 MainActivity.kt 1. 실행 화면 2. 메인..
aries574.tistory.com
2022.09.02 - [안드로이드] - [안드로이드 코틀린] SeekBar RGB 글씨 색상 조절 만드는 방법
[안드로이드 코틀린] SeekBar RGB 글씨 색상 조절 만드는 방법
이번 시간에는 SeekBar를 이용해서 색상 RGB 조절하는 방법을 알아보겠습니다. 목차 1. 실행 화면 2. 메인 화면 activity_main.xml 3. 메인 코드 MainActivity.kt 1. 실행 화면 2. 메인 화면 activi..
aries574.tistory.com
[안드로이드 코틀린] RecyclerView 홀수 행, 짝수 행 별 색상 다르게 하는 방법 (0) | 2022.09.19 |
---|---|
[안드로이드 코틀린] SQLite ToDo List 만드는 방법 part3 - 메인 화면과 메인 코드 (2) | 2022.09.16 |
[안드로이드 코틀린] SQLite ToDo List 만드는 방법 part1 - Data 클래스와 DB 클래스 (0) | 2022.09.14 |
[안드로이드 코틀린] 액티비티(Activity) 뒤로가기 버튼 만드는 방법 (1) | 2022.09.13 |
[안드로이드 코틀린] HTTP 통신 Volley 사용법 part2 - JSON 요청 및 파싱 (0) | 2022.09.12 |
댓글 영역