Документация по разработчику Android не была тщательной для того, как я хочу достичь пользовательского интерфейса для управления базой данных, и официальные коделабы, кажется, чрезмерны, что я хочу достичь. Я также не понимаю, что такое ViewModels и почему вы должны их использовать.
Код: Выделить всё
@Entity(tableName = "destinations")
data class Destination(
@PrimaryKey val name: String
)
< /code>
destinationdao.kt:
@Dao
interface DestinationDao {
@Query("SELECT * FROM destinations")
fun getAll(): List
@Upsert
fun upsert(destination: Destination)
@Delete
fun delete(destination: Destination)
}
< /code>
Aappdatabase.kt:
@Database(entities = [Destination::class], version = 1)
abstract class AppDatabase : RoomDatabase() {
abstract fun destinationDao(): DestinationDao
}
< /code>
Упрощенная версия mainActivity.kt: < /p>
@OptIn(ExperimentalMaterial3Api::class)
@Composable
fun TravelApp() {
Scaffold(
modifier = Modifier.fillMaxSize(),
topBar = {
TopAppBar(title = { Text("Travel destinations") })
}
) { innerPadding ->
Column(
modifier = Modifier
.padding(innerPadding)
.fillMaxSize()
) {
Row {
var destinationToAdd by remember { mutableStateOf("") }
TextField(
modifier = Modifier.weight(1f),
value = destinationToAdd,
onValueChange = { destinationToAdd = it },
label = { Text("Destination") }
)
Button(
onClick = {
// add 'destinationToAdd' to database
}
) {
Text("Add")
}
}
LazyColumn(
modifier = Modifier
.fillMaxWidth()
.weight(1f)
) {
// show destinations here
}
}
}
}
Подробнее здесь: https://stackoverflow.com/questions/796 ... ck-compose
Мобильная версия