首页 > 解决方案 > Android Kotlin RXKotlin Room - Error Kotlin.unit

问题描述

I want to make a simple insert data to room database with looping an array. I used RXKotlin to iterate the array I have an array like this :

fun defaultDataCategory() : ArrayList<CategoryModel>{
        var cat: CategoryModel
        var catArrayList: ArrayList<CategoryModel> = ArrayList(0)
        val date: Int = Calendar.DATE
        val formatedDate = SimpleDateFormat("yyyy-MM-dd").format(Date())
        val formatedTime = SimpleDateFormat("HH:mm").format(Date())
        val DateTime = "$formatedDate  $formatedTime"

        catArrayList.add(
            CategoryModel(
                1,
                "Personal",
                true,
                "Red",
                Converter.toDate(Calendar.getInstance().timeInMillis),
                "system",
                Converter.toDate(Calendar.getInstance().timeInMillis),
                "system"
            )
        )

        catArrayList.add(
            CategoryModel(
                2,
                "Work",
                true,
                "Blue",
                Converter.toDate(Calendar.getInstance().timeInMillis),
                "system",
                Converter.toDate(Calendar.getInstance().timeInMillis),
                "system"
            )
        )

        catArrayList.add(
            CategoryModel(
                3,
                "Home",
                true,
                "Purple",
                Converter.toDate(Calendar.getInstance().timeInMillis),
                "system",
                Converter.toDate(Calendar.getInstance().timeInMillis),
                "system"
            )
        )

        catArrayList.add(
            CategoryModel(
                4,
                "Learn",
                true,
                "Yellow",
                Converter.toDate(Calendar.getInstance().timeInMillis),
                "system",
                Converter.toDate(Calendar.getInstance().timeInMillis),
                "system"
            )
        )
       return catArrayList
    }

And I loop an array with RXKotlin like this

var catArrayList: ArrayList<CategoryModel> = DefaultData.defaultDataCategory()

        catArrayList.toObservable()
            .subscribeBy(  // named arguments for lambda Subscribers
                onNext = { homeViewModel.insertCategory(it) },
                onError = { Log.e("error insert=", it.printStackTrace().toString()) },
                onComplete = { Log.e("complete insert=","complete insert") }
            )

And I got an error "kotlin.unit" .

Error RXKotlin

How to iterate an array with RXKotlin and insert to room database?

标签: androidkotlin

解决方案


尝试

Observable.fromIterable(catArrayList).subscribeBy {...}


推荐阅读