SQLite数据库:在Android Studio中的多个活动之间写入和读取数据
使用Android studio和SQLite数据库: 我有一个活动,它用每个条目的一些数据类型填充SQLite数据库 我希望有另一个活动可以读取此数据,但是,我不确定如何通过另一个活动访问同一数据库。目前,我不确定是否应该将其作为包传递,或者是否有访问方法SQLite数据库:在Android Studio中的多个活动之间写入和读取数据,android,database,sqlite,android-activity,Android,Database,Sqlite,Android Activity,使用Android studio和SQLite数据库: 我有一个活动,它用每个条目的一些数据类型填充SQLite数据库 我希望有另一个活动可以读取此数据,但是,我不确定如何通过另一个活动访问同一数据库。目前,我不确定是否应该将其作为包传递,或者是否有访问方法 提前感谢首先创建一个新类,例如:-数据 创建公共静态字符串userid在其中 然后使用Data.userid=sqlitedata,然后您可以在项目中的任何位置使用Data.userid,它将返回相同的值…这非常简单 假设这是使用Room
提前感谢首先创建一个新类,例如:-数据 创建
公共静态字符串userid代码>在其中
然后使用Data.userid=sqlitedata
,然后您可以在项目中的任何位置使用Data.userid
,它将返回相同的值…这非常简单
假设这是使用Room library时以这种方式定义的数据库
@Database(
entities = [UserSchema::class],
version = 1,
exportSchema = false)
abstract class UserDatabase : RoomDatabase() {
abstract fun userDoa(): UserDao
companion object {
private var instance: UserDatabase? = null
fun getInstance(context: Context): UserDatabase? {
if (instance == null) {
synchronized(LmdDatabase::class) {
instance = Room.databaseBuilder(
context,
UserDatabase::class.java,
Constants.USER_DATABASE
).addMigrations()
.fallbackToDestructiveMigration()
.build()
}
}
return instance
}
fun destroyInstance() {
instance?.close()
instance = null
}
}
}
以下是您的用户实体定义:
@Entity(tableName = "user_table")
data class UserSchema(
@PrimaryKey
@ColumnInfo(name = "user_id") val userId:String
)
这是从数据库中删除和删除用户对象的doa
@Dao
interface UserDao {
@Insert(onConflict = OnConflictStrategy.IGNORE)
suspend fun insert(vararg userSchema: UserSchema)
@Delete
suspend fun delete(vararg userSchema: UserSchema)
@Query("SELECT * FROM user_table")
fun getAll(): LiveData<List<UserSchema>>
}
@Dao
接口用户DAO{
@插入(onConflict=OnConflictStrategy.IGNORE)
暂停趣味插入(vararg userSchema:userSchema)
@删除
暂停趣味删除(vararg userSchema:userSchema)
@查询(“从用户表中选择*)
fun getAll():LiveData
}
您的第一个活动可以使用suspend insert
方法从协同程序上下文调用insert将数据(例如用户)插入表中。另一个活动可以使用getAll()
method观察该表或数据库的数据更改。请添加一些代码示例,说明您当前如何将数据添加到SQLite数据库,因为有许多不同的方法可以这样做,这会影响您在另一个活动中访问数据的方式。为此干杯会有很大帮助。我必须使我的SQL数据库助手成为公共静态变量。这使我能够在其他活动中导入数据库以供使用。