近段时间的学习碎片整理(26)

1、根据已存在的db文件生成数据库,AppDataBase写法

@Database(entities = [Bean::class], version = 2)
abstract class AppDatabase : RoomDatabase() {
    abstract fun ****dao(): *****Dao
    companion object {
        val instance by lazy(LazyThreadSafetyMode.SYNCHRONIZED) {
        Room.databaseBuilder(
            ScaffoldConfig.getApplication().applicationContext,
            AppDatabase::class.java,
            “数据库名称”
        ).createFromAsset(”db文件名“)
            .addMigrations(migration1_2)
            .build()
        }
private val migration1_2 = object : Migration(1, 2) {
            override fun migrate(database: SupportSQLiteDatabase) {
                database.execSQL("CREATE TABLE IF NOT EXISTS `表名` ( `id` INTEGER PRIMARY KEY NOT NULL, `dateStr` TEXT NOT NULL,`year` INTEGER NOT NULL,`month` INTEGER NOT NULL,`day` INTEGER NOT NULL,`text` TEXT NOT NULL,`content` TEXT NOT NULL)")
            }
        }
    }
}

2、如果有一段操作,在某个时段操作结束后,结束操作有所不同时,可以使用高阶函数。        

private fun test1(action: ()->unit) {
    .....某些操作.....
    action.invoke()
}

//如果需要带返回值的话
private fun test2(action: (返回值类型)->unit) {
    ...某些操作后,例如请求数据后,得到 List<String>类型的数据...
    val list: List<String> = dao.selectAll()
    action.invoke(list)
}
//在调用时就可以如下
test1{
   //剩余的操作
}
//带返回值如下
test2 { list ->
    //对请求到的数据进行操作
}

3、这次遇到的需求是点击图片banner查看详情图并且需要能放大缩小

github上有个很好用的展示图片的类,支持放大缩小:com.luck.picture.lib.photoview.PhotoView

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值