由于工作需要第一次接触安卓与kotlin写法,此文章更多是个人一个记录,大佬请多指点勿喷.
// 1.新增分类(单独书写一个kotlin页面)
fun insert(item: CategoryData) {
val db = mHelper.writableDatabase
val value = ContentValues().apply {
put("id", item.id)
put("name", item.name)
}
db.insert(tableName, null, value)
}
// 2.定义数据结构(单独书写一个kotlin页面)
package com.doc.doc.bean
data class CategoryData(
val id: String,
val name: String
)
// 3.新增分类按钮点击事件(由于是在弹出框dialog中点击加入所以调用diaolog弹窗)
//主页面:
viewBinding.tvTest.setOnClickListener {
println("点击了")
val dialog = AddCategoryDialog()
getActivity()?.let { it1 -> dialog.show(it1.supportFragmentManager, null) }//点击调用dialog
// (3).调用 dialog.setDialogListener进行监听如果添加成功就刷新目录
dialog.setDialogListener(object : AddCategoryDialog.OnDialogListener {
override fun onSaveSuccess() {
findCategory()
}
})
}
// (1).设置监听(dialog页面)
private var dialogListener: OnDialogListener? = null
interface OnDialogListener {
fun onSaveSuccess()
}
fun setDialogListener(itemListener: OnDialogListener) {
this.dialogListener = itemListener
}
// dialog页面中的取消与确定按钮
private fun initView() {
// 取消按钮
binding.btnCancel.setOnClickListener {
println("点击取消,123")
dismiss()
}
// 确认新增按钮
binding.btnUpload.setOnClickListener {
add()
}
}
// 确认新增按钮调用的函数
private fun add() {
// 思路:1.确定数据结构
// 2.调用准备的接口
// 3.传入相对应的字段
// 4.添加到目录列表成功并刷新目录列表
val editText = binding.editText.text.toString()//拿到输入内容
val row = CategoryData(
//赋值给CategoryData需要的字段
id = CommonUtils.generateId(),
name = editText,
)
println(row)
try {
val cateGoryDao = CategoryDao()//初始化CategoryDao
cateGoryDao.insert(row)//调用CategoryDao中的insert方法
// (2).调用监听方法---此处是监听第二步,第三步在主页面监听刷新写在上面
dialogListener?.onSaveSuccess()
dismiss()//关闭弹窗
} catch (e: Exception) {
e.printStackTrace()
}
}