您当前的位置: 首页 > 

蓝不蓝编程

暂无认证

  • 0浏览

    0关注

    706博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

一天撸一个安卓App:记事本

蓝不蓝编程 发布时间:2020-07-15 10:26:55 ,浏览量:0

效果图

使用到的技术
  • room(谷歌官方sqlite数据库操作库)
  • recyclerview
  • coroutines(协程)
实现功能
  1. 新增/修改/删除/查看笔记
  2. 本地数据库记录数据.
主要代码
  1. 代码目录结构
  2. 代码节选
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

关注
打赏
1639405877
查看更多评论
立即登录/注册

微信扫码登录

0.0972s