效果图
- room(谷歌官方sqlite数据库操作库)
- recyclerview
- coroutines(协程)
- 新增/修改/删除/查看笔记
- 本地数据库记录数据.
- 代码目录结构
- 代码节选
class NoteListActivity : AppCompatActivity() {
private var noteRepository = NoteRepository()
private lateinit var adapter: NoteAdapter
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_recycler_view)
initRecyclerView()
initAddButton()
}
private fun initAddButton() {
floatingActionButton.setOnClickListener {
startActivity(Intent(this, AddNoteActivity::class.java))
}
}
private fun initRecyclerView() {
adapter = NoteAdapter()
recyclerView.adapter = adapter
recyclerView.layoutManager = LinearLayoutManager(this)
//添加安卓自带的分割线
recyclerView.addItemDecoration(DividerItemDecoration(this, DividerItemDecoration.VERTICAL))
}
private fun refreshData() {
GlobalScope.launch(Dispatchers.Main) {
adapter.setData(noteRepository.getNoteList())
}
}
override fun onResume() {
super.onResume()
refreshData()
}
}
class NoteAdapter : RecyclerView.Adapter() {
private var mDataList = mutableListOf()
private lateinit var mContext: Context
override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) {
val data = mDataList[position]
holder.itemView.textView.text = data.content
holder.itemView.setOnClickListener {
setOnItemClickListener(data)
}
}
fun setData(dataList: List) {
mDataList.clear()
mDataList.addAll(dataList)
notifyDataSetChanged()
}
override fun getItemCount(): Int = mDataList.size
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
mContext = parent.context
val view = LayoutInflater.from(mContext).inflate(R.layout.item_rv, parent, false)
return ViewHolder(view)
}
private fun setOnItemClickListener(note: Note) {
val intent = Intent(mContext, EditNoteActivity().javaClass)
intent.putExtra(KEY_NOTE, note)
mContext.startActivity(intent)
}
class ViewHolder(itemView: View?) : RecyclerView.ViewHolder(itemView!!)
}
完整源代码
https://gitee.com/cxyzy1/notepad
安卓开发入门教程系列汇总
安卓发展历程及前景
安卓发展历程 安卓开发前景展望
初探安卓安装开发工具 创建第一个安卓工程
开发语言学习Kotlin语言基础
UI控件学习系列UI控件_TextView UI控件_EditText UI控件_Button UI控件_ImageView UI控件_RadioButton UI控件_CheckBox UI控件_ProgressBar