这是我的数据类主构造函数。
@Parcelize
data class CharacInfo(
@PrimaryKey val uid: Long?,
@ColumnInfo var category: Int,
@ColumnInfo var img: Int,
@ColumnInfo var job: String,
@ColumnInfo var birth: String,
@ColumnInfo var onoff: Boolean
) : Parcelable
我想从服务类中获取数据类的每个参数的value。这是我的服务班。
class AlarmService : Service() {
private var list = ArrayList<CharacInfo>()
private lateinit var info: CharacInfo
override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int {
val intent = Intent(this, MainActivity::class.java)
val pendingIntent = PendingIntent.getActivity(this,0,intent,PendingIntent.FLAG_MUTABLE)
val notification = NotificationCompat.Builder(this, App.ID)
.setSmallIcon(R.drawable.ic_launcher_background)
.setContentTitle("test")
.setContentText("test")
.setContentIntent(pendingIntent)
.build()
startForeground(1,notification)
return START_STICKY
}
override fun onBind(p0: Intent?): IBinder? {
return null
}
}
但我无法初始化 info 对象。我不想插入一个新的 value,我想得到一个现有的 value。我想创建一个空的构造函数,但我之所以这样做是因为我的数据类中需要一个主构造函数。
回答1
对于每个参数,您应该像这样使用 forEach 循环
list.forEach {
val uid = it.uid
var category = it.category
var img = it.img
var job = it.job
var birth = it.birth
var onoff = it.onoff
}