Я пытаюсь добавить набор в электронную почту в виде текста
//Data class
@Entity(tableName = "inventory")
data class InventoryDataClass(
@PrimaryKey(autoGenerate = true)
var id: Int,
@NonNull var itemNumber: String,
@NonNull val itemDescription: String,
val currentInventory: Int?,
@NonNull val optimalInventory: Int,
@NonNull val minInventory: Int
)
// getting list from room
val inventoryList by mainViewModel.getInventoryItems.collectAsState(initial = emptyList())
//converting list to set
val emailNumber = inventoryList.map { item ->
println("Item Number: ${item.itemNumber} | Item Description: ${item.itemDescription} | Current Inventory: ${item.currentInventory.toString()}")}.toSet()
Я могу получить результат, который мне нужен:
I/System.out: Item Number: 123| Item Description: item1 | Current Inventory: 47
I/System.out: Item Number: 456| Item Description: item2 | Current Inventory: 8
...
Как я могу получить его в виде строки и добавить в свою электронную почту в виде текста? Пока что я могу получить только Kotlin.Unit
Log.d(TAG, "InventoryMainScreen: $emailNumber")
//output
D/MainActivity: InventoryMainScreen: [kotlin.Unit]
Вы можете добавить к StringBuilder:
//Output this:
//Item Number: 123| Item Description: item1 | Current Inventory: 47
//Item Number: 123| Item Description: item1 | Current Inventory: 47
val emailNumber = StringBuilder()
inventoryList.forEach { item ->
emailNumber.append("Item Number: ${item.itemNumber} | Item Description: ${item.itemDescription} | Current Inventory: ${item.currentInventory}").append("\n")
}
emailNumber.removeSuffix("\n")
Только не вызывайте println. Верните свою строку непосредственно в лямбда вместо того, чтобы сначала передавать ее в println().