android - Android kotlin:我已从 url 成功检索数据,我想将这些数据存储到房间数据库类别中
问题描述
我想存储名称、价格、图片和产品 ID、类别 ID
模型类
@Entity(tableName = "productlisttable")
data class ProductList_Data(
@PrimaryKey
val uid: Int = 0,
@ColumnInfo(name = "_name")
var name: String? = "",
@ColumnInfo(name = "_price")
var price: String? = ""
)
道
@Dao
interface ProductListDao {
@Query("SELECT * FROM productlisttable")
fun getAll(): List<ProductList_Data>
@Insert
fun insert(productListData: ProductList_Data)
}
应用数据库
@Database(entities = arrayOf(ProductList_Data::class), version = 1)
abstract class ProductlistAppDatabase: RoomDatabase() {
abstract fun productListDao(): ProductListDao
}
这是产品列表活动
class ProductListActivity : AppCompatActivity() {
private val TAG = ProductListActivity::class.java.simpleName
lateinit var imageView: ImageView
lateinit var iVwishls: ImageView
lateinit var iVCart: ImageView
lateinit var productlistAdapter: ProductlistAdapter
lateinit var viewModelJob: Job
lateinit var coroutineScope: CoroutineScope
lateinit var data: String
lateinit var catId: String
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_product_list)
viewModelJob = Job()
coroutineScope = CoroutineScope(viewModelJob + Dispatchers.Default)
catId = intent.getStringExtra("cat_id").toString()
imageView = findViewById(R.id.imageViewBackFromPluductlist)
iVwishls = findViewById(R.id.imageViewWishls)
iVCart = findViewById(R.id.imageViewCart)
iVwishls.setOnClickListener {
startActivity(
Intent(
applicationContext,
WishlistActivity::class.java
)
)
}
iVCart.setOnClickListener {
startActivity(
Intent(
applicationContext,
CartActivity::class.java
)
)
}
imageView.setOnClickListener { onBackPressed() }
getProductList()
getFromRoom()
}
private fun getFromRoom() {
val db = Room
.databaseBuilder(
applicationContext,
ProductlistAppDatabase::class.java,
"productlistDB"
)
.build()
}
private fun getProductList() {
coroutineScope.launch {
val response =
ServiceApi.retrofitService.getProductList(Rare.getProductList(catId))
if (response.isSuccessful) {
val model = response.body()
productlistAdapter = ProductlistAdapter(this@ProductListActivity, model)
withContext(Dispatchers.Main) {
recyclerviewPlist.layoutManager = LinearLayoutManager(this@ProductListActivity)
recyclerviewPlist.adapter = productlistAdapter
}
} else {
Log.d(TAG, "getProductList: error")
}
}
val db = Room
.databaseBuilder(
applicationContext,
ProductlistAppDatabase::class.java,
"productlistDB"
)
.build()
val data = ProductList_Data(1, "firsrproduct", "100")
db.productListDao().insert(data)
}
}
这是实际应用程序的屏幕截图/如您所见,我能够像这样从服务器获取数据...
所以我应该改变或添加什么我试图定义房间 db 而所有那些 bt 完全失败了