【问题标题】:How insert data from a room table to another in android?如何在android中将数据从房间表插入另一个?
【发布时间】:2020-09-27 04:52:31
【问题描述】:

我有一个应用程序从 api 获取数据,然后将其保存到 RoomDatabase(RoomTable)。

我在主屏幕中使用 recyclerview 显示这些数据。

正如我所说,我的产品在数据库中的模型室表中(RoomTable 是该表的名称),所以在这种情况下,如何在添加按钮后将我的产品插入到房间数据库中的另一个表(CartTAble)每个产品的点击率?

我希望可以清楚地描述这一点。 谢谢你。

表格:

@entity
class RoomTable (
  
  @primarykey
  autoincrement = true
  val id : Int 
  val title : String 


@entity
  class CartTAble (
  
  @primarykey
  autoincrement = true
  val id : Int 
  val title : String 

)


@Insert(replace strategy)
fun insertToCart(model : List<CartTable)


我也有存储库和视图模型,但为简单起见忽略。

adapter : 

class Myadapter (myproduct : List<RoomTAble> ) : Recycerlview.Adapter<Myadapter.Viewholder>(){

 val viewmodel : Viewmodelroom()

class Viewholder (view : View ) : RecyclerView.ViewHolder(){

    val title =  view.findviewbyid(R.id.sometihng)
    val image = view.finviewbyid(R.id.Someimage)

}

  override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {


        val layoutview =
            LayoutInflater.from(parent.context).inflate(R.layout.product_items, parent, false)
        return ViewHolder(layoutview)

    }


 override fun getItemCount(): Int = myproduct.size


override fun onBindViewHolder(holder: ViewHolder, position: Int) {


        val products = myproduct[position]


        holder.title.text = products.title
        Picasso.get().load(products.image).into(holder.imageproduct)


        holder.btn_add_product.setOnClickListener {

            viewModel.insertToCart()

   // in here for insertTocart paramter it need list<CArtTAble> but we have just list of RoomTAble
        }

【问题讨论】:

    标签: android kotlin


    【解决方案1】:

    首先,您的命名约定是错误的。 RoomTable 和 CartTable 是注释表,它们是模型或实体。

    第二。只需使用 RoomTable 中的数据创建一个 CartTable。

    val modelCart = CartTable(title = products.title)
    

    您也可以只插入 1 个模型。只需添加即可。

    @Insert(replace strategy)
    fun insertCart(model: CartTable)
    

    然后将其保存到数据库中。

    【讨论】:

    • 感谢您的帮助。它确实有效。这是最好的方法还是有什么好方法?
    • 这是最简单的方法。
    猜你喜欢
    • 2021-11-19
    • 2021-05-14
    • 1970-01-01
    • 2014-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-25
    • 1970-01-01
    相关资源
    最近更新 更多