ANDROID SQLite 데이터 베이스 사용 방법 2편
아래와 같이 Paintext 와 버튼을 하나씩 추가후 적당히 조정 후 text와 레이아웃을 조정한다.
단. text는 꼭 values를 활용할것!!!
아래와 같이 RecycleView도 추가하고 레이아웃 조정과 ID 설정을 해준다.
아래와 같이 새로운 레이아웃을 추가후 이름을 item_recycler로 지정한다.
새로운 레이아웃에 아래와 같이 설정을 해준다.
메인 액티비티에 미리보기 설정
또 엑티비에 새로운 클래스를 추가한다 어탭터 클래스이다.
다음과 같이 코딩해준다.
package com.monosoft.sqlitesample
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.recyclerview.widget.RecyclerView
import kotlinx.android.synthetic.main.item_recycler.view.*
import java.text.SimpleDateFormat
class RecyclerAdapter : RecyclerView.Adapter<Hoder>() {
var listData = mutableListOf<Memo>()
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): Hoder {
val view = LayoutInflater.from(parent.context)
.inflate(R.layout.item_recycler,parent,false)
return Hoder(view)
}
override fun onBindViewHolder(holder: Hoder, position: Int) {
//실제 그려주는 리스너
val memo = listData.get(position)
holder.setMemo(memo)
}
override fun getItemCount(): Int {
return listData.size
}
}
class Hoder(itemView : View) : RecyclerView.ViewHolder(itemView) {
fun setMemo(memo:Memo) {
itemView.textNo.text = "${memo.no}"
itemView.textContent.text = "${memo.content}"
//포맷에 맞게 리턴됨
val sdf = SimpleDateFormat("yyyy/mm/dd hh:mm")
val datetime = sdf.format(memo.datetime)
itemView.textDatetime.text = "$datetime"
}
}
메인 액티비티에도 코딩해준다.
package com.monosoft.sqlitesample
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import androidx.recyclerview.widget.LinearLayoutManager
import kotlinx.android.synthetic.main.activity_main.*
class MainActivity : AppCompatActivity() {
val DB_NAME = "sqlite.sql"
val DB_VERSION = 1
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val helper = SqliteHelper(this,DB_NAME,DB_VERSION)
val adapter = RecyclerAdapter()
val memos = helper.selectMemo()
adapter.listData.addAll(memos)
recyclerMemo.adapter = adapter
recyclerMemo.layoutManager = LinearLayoutManager(this)
buttonSave.setOnClickListener {
val content = editMemo.text.toString()
if(content.isNotEmpty()) {
val memo = Memo(null,content,System.currentTimeMillis())
helper.insertMemo(memo)
//기존 작성글 삭제
editMemo.setText("")
//목록 갱신
adapter.listData.clear()
adapter.listData.addAll(helper.selectMemo())
adapter.notifyDataSetChanged()
//나중에는 변경된것만 갱신
}
}
}
}
결과화면
'Kotlin > Kotlin 팁' 카테고리의 다른 글
Android 카메라 사용 방법 - 갤러리 추가 (0) | 2020.10.08 |
---|---|
Android 카메라 사용 방법 (0) | 2020.10.06 |
ANDROID SQLite 데이터 베이스 사용 방법 1편 (0) | 2020.09.28 |
ANDROID 코틀린 디버깅 (0) | 2020.09.23 |
ANDROID 파일 읽고 쓰기 (0) | 2020.09.22 |
댓글