I would like to create a function that will calculate a number from one column. Then I'd like to dress her in a textview. I have a database from room and dao. The problem is that I can't call the function because I am doing something wrong. Can anyone help me?
POMIAR :
package com.example.mwproto1.ROOM
import android.os.Parcel
import android.os.Parcelable
import androidx.room.ColumnInfo
import androidx.room.Entity
import androidx.room.PrimaryKey
@Entity
data class Pomiar(
@ColumnInfo(name="Stezenie")
val Stezenie: String?,
@ColumnInfo(name="Data")
val Data: String?,
@ColumnInfo(name="Zegar")
val Zegar: String?,
@ColumnInfo(name="Posilek")
val Posilek: String?
): Parcelable{
@PrimaryKey(autoGenerate = true)
var id :Int = 0
constructor(parcel: Parcel) : this(
parcel.readString(),
parcel.readString(),
parcel.readString(),
parcel.readString()
) {
id = parcel.readInt()
}
override fun writeToParcel(parcel: Parcel, flags: Int) {
parcel.writeString(Stezenie)
parcel.writeString(Data)
parcel.writeString(Zegar)
parcel.writeString(Posilek)
parcel.writeInt(id)
}
override fun describeContents(): Int {
return 0
}
companion object CREATOR : Parcelable.Creator<Pomiar> {
override fun createFromParcel(parcel: Parcel): Pomiar {
return Pomiar(parcel)
}
override fun newArray(size: Int): Array<Pomiar?> {
return arrayOfNulls(size)
}
}
}
DATABASE:
package com.example.mwproto1.ROOM
import android.content.Context
import androidx.room.Database
import androidx.room.Room
import androidx.room.RoomDatabase
@Database(
entities = arrayOf(Pomiar::class),
version = 1
)
abstract class Database:RoomDatabase(){
abstract fun getPomiarDao():PomiarDao
companion object{
@Volatile private var instance:com.example.mwproto1.ROOM.Database?=null
private val LOCK = Any()
operator fun invoke(context: Context)= instance?: synchronized(LOCK){
instance ?: buildDatabase(context).also{ it ->
instance = it
}
}
private fun buildDatabase(context: Context) = Room.databaseBuilder(
context.applicationContext,
com.example.mwproto1.ROOM.Database::class.java,
"pomiardatabase"
).build()
}
}
Dao:
package com.example.mwproto1.ROOM
import androidx.room.*
@Dao
interface PomiarDao {
@Insert
suspend fun addPomiar(pomiar: Pomiar)
@Query("SELECT * FROM pomiar ORDER BY id DESC")
suspend fun getAllPomiar():List<Pomiar>
@Insert
suspend fun addMultiplePomiar(vararg pomiar: Pomiar)
@Update
suspend fun updatePomiar(pomiar: Pomiar)
@Delete
suspend fun deletePomiar(pomiar: Pomiar )
@Query("SELECT avg(Stezenie) FROM Pomiar ")
suspend fun avg(pomiar: Pomiar)
}
The last one is just my average function, which unfortunately is bad I tried a few more ways but nothing comes out; .... ///