Kotlin——简单的闹钟App

有一段时间没有碰过android开发了,这次趁着Kotlin的学习重温了android开发,断断续续用了周末两天时间使用Kotlin简单编写了一个闹钟app。不得不承认,Kotlin对android原生Java开发来说,代码量少的不仅仅是一个数量级,大大减轻了码农的工作量,有了更快的开发速度,更一致的开发体验;有JavaScript开发经验的朋友上手会更快,强烈推荐。
回到App上,该App延续了Material Design风格,实现最基础的闹钟功能,还有一些其他的铃声选择,重复日期选择以及标签功能。另外集成了Xutils 3.5.0框架,对其Http和Db模块进行了二次封装,后期考虑是否需要增加个云闹钟的功能。
github地址:https://github.com/liaozp9112/AlarmClock
顺便提一句Xutils3.5 DB模块没有提供初始数据表的操作,一定是在对表插入或者,更新或者删除操作后才会初始化相应表,如果在此之前进行数据查询时会报错,我仿造它建表的句在app初始化时就初始化所有表。

 private fun createAllTables(){
            for (table in Tables.values()){
                val cl = Class.forName(table.tablepath);
                createTableIfNotExist(x.getDb(daoConfig).getTable(cl));
            }
        }


@Throws(DbException::class)
protected fun createTableIfNotExist(table: TableEntity<*>) {
            if (!table.tableIsExist()) {
                synchronized(table.javaClass) {
                    if (!table.tableIsExist()) {
                        val sqlInfo = SqlInfoBuilder.buildCreateTableSqlInfo(table)
                        x.getDb(daoConfig).execNonQuery(sqlInfo)
                        val execAfterTableCreated = table.onCreated
                        if (!TextUtils.isEmpty(execAfterTableCreated)) {
                            x.getDb(daoConfig).execNonQuery(execAfterTableCreated)
                        }
                    }
                }
            }
        }
 }

enum class Tables(val tablepath:String){
    //闹钟表
    T_ALARM_CLOCK("cn.com.liaozp.alarmclock.xutils.db.T_ALARM_CLOCK");
}

在这里插入图片描述

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/u014646318/article/details/82828319
今日推荐