在android中的适配器内改造调用 [英] Retrofit call inside an adapter in android

查看:42
本文介绍了在android中的适配器内改造调用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在适配器内执行改造调用..我已经成功实施,并且它给了我所需的输出但是在适配器下执行此操作是一个好习惯吗???????

我的应用程序是 -->产品销售应用程序-->在我的购物车中-->我显示用户想要购买的产品列表-->为此需要一个适配器-->我正在执行滑动删除功能->执行对删除(holder.delete.setonclicklistener {...})按钮的改造调用

<块引用>

我的代码是-->

 holder.tvDelete.setOnClickListener(View.OnClickListener { view ->progressDialog.show()val 令牌:String = SharedPrefManager.getInstance(context).user.access_token.toString()RetrofitClient.instance.deletecart(token, id.toString()).enqueue(对象:回调{覆盖 fun onFailure(call: Call, t: Throwable) {Log.d("res", "" + t)}覆盖乐趣 onResponse(调用:调用,响应:响应){var res = 响应progressDialog.dismiss()(上下文为活动).完成()如果 (res.body()?.status == 200) {Toast.makeText(语境,res.body()?.message,吐司.LENGTH_LONG).展示()进步()mItemManger.removeShownLayouts(holder.swipelayout)通知项目更改(位置)notifyItemRemoved(位置)dataList?.removeAt(position)notifyItemRangeChanged(position, dataList?.size!!)mItemManger.closeAllItems()} 别的 {尝试 {val jObjError =JSONObject(response.errorBody()!!.string())Toast.makeText(语境,jObjError.getString("message") + jObjError.getString("user_msg"),吐司.LENGTH_LONG).展示()} catch (e: 异常) {Toast.makeText(context, e.message, Toast.LENGTH_LONG).show()Log.e("errorrr", e.message)}}}})mItemManger.bindView(holder.itemView, 位置)})

以上代码有效

我也经历过这个 -->从我的回收器适配器的点击功能传递数据

我执行了此链接,但在活动中我将无法访问活动中的此代码

 mItemManger.removeShownLayouts(holder.swipelayout)通知项目更改(位置)notifyItemRemoved(位置)dataList?.removeAt(position)notifyItemRangeChanged(position, dataList?.size!!)mItemManger.closeAllItems()

需要澄清这一点

需要帮助谢谢

--我按照上面的链接这里是我的代码

<块引用>

界面

interface OnItemClick {有趣的 onItemClicked(position: Int)}

<块引用>

活动

class AddToCart:BaseClassActivity(), OnItemClick{覆盖 fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)setContentView(R.layout.add_to_cart)getWindow().setExitTransition(null)getWindow().setEnterTransition(null)var mActionBarToolbar = findViewById(R.id.toolbartable);setSupportActionBar(mActionBarToolbar);//向工具栏添加后退箭头设置启用标题()mActionBarToolbar.setNavigationOnClickListener(View.OnClickListener {onBackPressed()})placeorder.setOnClickListener {val意图:意图=意图(applicationContext,AddressActivity::class.java)开始活动(意图)}加载购物车()}有趣的 loadCart(){val 模型 = ViewModelProvider(this)[CartViewModel::class.java]model.CartList?.observe(this, object : Observer {覆盖乐趣 onChanged(t: CartResponse?) {generateDataList(t?.data?.toMutableList())totalamount.setText(t?.total.toString())}})}fun generateDataList(dataList: MutableList?) {val recyclerView=findViewById(R.id.addtocartrecyleview) as?回收器视图val 线性:LinearLayoutManager=LinearLayoutManager(applicationContext, LinearLayoutManager.VERTICAL, false)recyclerView?.layoutManager=linearval 适配器 = CartAdapter(this@AddToCart, dataList)recyclerView?.adapter=adapterrecyclerView?.addItemDecoration(DividerItemDecorator(resources.getDrawable(R.drawable.divider)))适配器.notifyDataSetChanged()adapter.setItemClick(this)if (dataList?.isEmpty() ?: true) {recyclerView?.setVisibility(View.GONE)totalamount.setVisibility(View.GONE)fl_footer.setVisibility(View.GONE)placeorder.setVisibility(View.GONE)emptytext.setVisibility(View.VISIBLE)} 别的 {recyclerView?.setVisibility(View.VISIBLE)totalamount.setVisibility(View.VISIBLE)fl_footer.setVisibility(View.VISIBLE)placeorder.setVisibility(View.VISIBLE)emptytext.setVisibility(View.GONE)}recyclerView?.addOnScrollListener(object :RecyclerView.OnScrollListener() {覆盖乐趣 onScrollStateChanged(recyclerView: RecyclerView, newState: Int) {super.onScrollStateChanged(recyclerView, newState)Log.e("RecyclerView", "onScrollStateChanged")}覆盖乐趣 onScrolled(recyclerView: RecyclerView, dx: Int, dy: Int) {super.onScrolled(recyclerView, dx, dy)}})}覆盖乐趣 onBackPressed() {super.onBackPressed()val 意图 = 意图(这个,HomeActivity::class.java)开始活动(意图)}覆盖乐趣 onOptionsItemSelected(item: MenuItem): Boolean {返回时(item.itemId){android.R.id.home ->{NavUtils.navigateUpFromSameTask(this)真的}否则 ->super.onOptionsItemSelected(item)}}覆盖乐趣 onResume() {super.onResume()加载购物车()}覆盖乐趣 onItemClicked(position: Int) {val 令牌:String = SharedPrefManager.getInstance(applicationContext).user.access_token.toString()RetrofitClient.instance.deletecart(token, id.toString()).enqueue(对象:回调{覆盖 fun onFailure(call: Call, t: Throwable) {Log.d("res", "" + t)}覆盖乐趣 onResponse(调用:调用,响应:响应){var res = 响应(applicationContext 作为 Activity).finish()如果 (res.body()?.status == 200) {Toast.makeText(应用上下文,res.body()?.message,吐司.LENGTH_LONG).展示()val 意图 =意图(applicationContext,AddToCart::class.java)意图.标志 =Intent.FLAG_ACTIVITY_NEW_TASK 或 Intent.FLAG_ACTIVITY_MULTIPLE_TASKapplicationContext.startActivity(意图)(applicationContext 作为 Activity?)!!.overridePendingTransition(0, 0)} 别的 {尝试 {val jObjError =JSONObject(response.errorBody()!!.string())Toast.makeText(应用上下文,jObjError.getString("message") + jObjError.getString("user_msg"),吐司.LENGTH_LONG).展示()} catch (e: 异常) {Toast.makeText(applicationContext, e.message, Toast.LENGTH_LONG).show()Log.e("errorrr", e.message)}}}})}}

<块引用>

适配器:--

class CartAdapter(private val context: Context, private val dataList: MutableList?) :RecyclerSwipeAdapter() , AdapterView.OnItemSelectedListener{//添加 RecyclerSwipeAdapter 并覆盖私有变量 itemClick:OnItemClick?= 空内部类 CustomViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView),View.OnClickListener {val mView: 查看val swipelayout:SwipeLayoutval productiamge: ImageViewval 产品名称:TextViewval 产品类别:TextViewval 产品价格:TextViewval tvDelete:TextViewval spin:微调器在里面 {mView = itemViewproductiamge= mView.findViewById(R.id.imagecart)产品名称= mView.findViewById(R.id.imagenamecart)productcategory= mView.findViewById(R.id.imagecategory)productprice =mView.findViewById(R.id.price)swipelayout=mView.findViewById(R.id.swipe)tvDelete=mView.findViewById(R.id.tvDelete)spin = mView.findViewById(R.id.spinner) 作为 SpinnertvDelete.setClickable(true);tvDelete.setOnClickListener(this);}覆盖乐趣 onClick(v:查看?){如果(项目点击!= null){itemClick!!.onItemClicked(getPosition());}}}覆盖乐趣 onCreateViewHolder(parent: ViewGroup, viewType: Int): CustomViewHolder {val layoutInflater = LayoutInflater.from(parent.context)val 视图:View = layoutInflater.inflate(R.layout.addtocart_item, parent, false)返回 CustomViewHolder(view)}覆盖乐趣 getSwipeLayoutResourceId(position: Int): Int {返回 R.id.swipe;}覆盖乐趣 onBindViewHolder(holder: CustomViewHolder, position: Int) {val progressDialog :ProgressDialog= ProgressDialog(context);holder.productname.text = dataList?.get(position)?.product?.name?: nullholder.productcategory.text = "(" +dataList?.get(position)?.product?.product_category +")";holder.productprice.text = dataList?.get(position)?.product?.cost.toString()Glide.with(context).load(dataList?.get(position)?.product?.product_images).into(holder.productiamge)holder.swipelayout.setShowMode(SwipeLayout.ShowMode.PullOut)Log.e(checkidd", dataList?.get(position)?.product?.id.toString())//从右拖动//从右拖动持有人.swipelayout.addDrag(SwipeLayout.DragEdge.Right,holder.swipelayout.findViewById(R.id.bottom_wrapper))val id =dataList?.get(position)?.product?.idholder.tvDelete.setOnClickListener(View.OnClickListener { view ->mItemManger.removeShownLayouts(holder.swipelayout)通知项目更改(位置)notifyItemRemoved(位置)dataList?.removeAt(position)notifyItemRangeChanged(position, dataList?.size!!)mItemManger.closeAllItems()})mItemManger.bindView(holder.itemView, 位置)}覆盖 fun getItemCount() = dataList?.size ?: 0覆盖乐趣 onNothingSelected(p0: AdapterView<*>?) {TODO(尚未实现")}覆盖乐趣 onItemSelected(p0: AdapterView<*>?, p1: View?, p2: Int, p3: Long) {}有趣的 getItemClick(): OnItemClick?{返回项目点击}有趣的 setItemClick(itemClick: OnItemClick?) {this.itemClick = itemClick}

}

但我没有得到想要的输出帮助我

解决方案

在用户 EpicPandaForce 的帮助下,我得到了问题的答案

界面::----

interface OnItemClick {有趣的删除项目(位置:Int,id:Int)}

适配器::----

 私有变量 itemClick: OnItemClick?= 空...holder.tvDelete.setOnClickListener(View.OnClickListener { view ->mItemManger.removeShownLayouts(holder.swipelayout)通知项目更改(位置)notifyItemRemoved(位置)dataList?.removeAt(position)itemClick?.DeleteItem(position,id!!.toInt())notifyItemRangeChanged(position, dataList?.size!!)mItemManger.closeAllItems()})mItemManger.bindView(holder.itemView, 位置)}...有趣的 setItemClick(itemClick: OnItemClick?) {this.itemClick = itemClick}

活动::----

class AddToCart:BaseClassActivity(), OnItemClick{...onCreate(){适配器.setItemClick(this);...}覆盖 fun DeleteItem(position: Int, id:Int) {progressDialog?.show()viewModel.product_id.value =id.toString()viewModel.loaddelete()viewModel.Results.observe(this) { result ->当(结果){CartViewModel.Result.Missing ->{Toast.makeText(applicationContext,产品丢失",Toast.LENGTH_LONG).展示()}CartViewModel.Result.Success ->{结束()val 意图 =意图(applicationContext,AddToCart::class.java)意图.标志 =Intent.FLAG_ACTIVITY_NEW_TASK 或 Intent.FLAG_ACTIVITY_MULTIPLE_TASK开始活动(意图)overridePendingTransition(0, 0) }否则 ->{Toast.makeText(applicationContext,你好",Toast.LENGTH_LONG).show()}}}}

视图模型::--------

有趣的loaddelete(){val id = product_id.value!!.toString().trim()val 令牌:String = SharedPrefManager.getInstance(getApplication()).user.access_token.toString()RetrofitClient.instance.deletecart(token, id).enqueue(对象:回调{覆盖 fun onFailure(call: Call, t: Throwable) {loginResultEmitter.emit(CartViewModel.Result.NetworkFailure)Log.d("res", "" + t)}覆盖乐趣 onResponse(调用:调用,响应:响应){var res = 响应如果 (res.body()?.status == 200) {Toast.makeText(获取应用程序(),res.body()?.message,吐司.LENGTH_LONG).展示()loginResultEmitter.emit(CartViewModel.Result.Success)} 别的 {尝试 {val jObjError =JSONObject(response.errorBody()!!.string())Toast.makeText(获取应用程序(),jObjError.getString("message") + jObjError.getString("user_msg"),吐司.LENGTH_LONG).展示()} catch (e: 异常) {Toast.makeText(getApplication(), e.message, Toast.LENGTH_LONG).show()Log.e("errorrr", e.message)}}}})}

I'm performing a retrofit call inside an adapter..i have successfully implemented and also it is giving me the desired output but is it a good practice to perform this under adapter?????

my app is --> product selling app-->in my cart-->im displaying the product list which user wants to buy-->for this required an adapter-->there im performing a swipe to delete function -->performing retrofit call on delete(holder.delete.setonclicklistener {...}) button

my code is-->

        holder.tvDelete.setOnClickListener(View.OnClickListener { view ->
        progressDialog.show()

        val token: String = SharedPrefManager.getInstance(context).user.access_token.toString()
        RetrofitClient.instance.deletecart(token, id.toString())
            .enqueue(object : Callback<DeleteResponse> {
                override fun onFailure(call: Call<DeleteResponse>, t: Throwable) {

                    Log.d("res", "" + t)


                }

                override fun onResponse(
                    call: Call<DeleteResponse>,
                    response: Response<DeleteResponse>
                ) {
                    var res = response
                    progressDialog.dismiss()
                    (context as Activity).finish()

                    if (res.body()?.status == 200) {
                        Toast.makeText(
                            context,
                            res.body()?.message,
                            Toast.LENGTH_LONG
                        ).show()
                        progress()

                        mItemManger.removeShownLayouts(holder.swipelayout)
                        notifyItemChanged(position)
                        notifyItemRemoved(position)
                        dataList?.removeAt(position)
                        notifyItemRangeChanged(position, dataList?.size!!)
                        mItemManger.closeAllItems()


                    } else {
                        try {
                            val jObjError =
                                JSONObject(response.errorBody()!!.string())
                            Toast.makeText(
                                context,
                                jObjError.getString("message") + jObjError.getString("user_msg"),
                                Toast.LENGTH_LONG
                            ).show()
                        } catch (e: Exception) {
                            Toast.makeText(context, e.message, Toast.LENGTH_LONG).show()
                            Log.e("errorrr", e.message)
                        }
                    }
                }
            })

        mItemManger.bindView(holder.itemView, position)

    })

the above code is working

i have also gone through this --> passing data from on click function of my recycler adaptor

this link i performed but in activity i wont be getting access to this code in activity

    mItemManger.removeShownLayouts(holder.swipelayout)
                        notifyItemChanged(position)
                        notifyItemRemoved(position)
                        dataList?.removeAt(position)
                        notifyItemRangeChanged(position, dataList?.size!!)
                        mItemManger.closeAllItems()

need clarification on this

need help thanks

Edit:-- i followed the above link here is my code

interface

interface OnItemClick {
fun onItemClicked(position: Int)

 }

activity

class AddToCart:BaseClassActivity(), OnItemClick{
override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.add_to_cart)
    getWindow().setExitTransition(null)
    getWindow().setEnterTransition(null)
    var mActionBarToolbar = findViewById<androidx.appcompat.widget.Toolbar>(R.id.toolbartable);
    setSupportActionBar(mActionBarToolbar);
    // add back arrow to toolbar
  setEnabledTitle()

    mActionBarToolbar.setNavigationOnClickListener(View.OnClickListener {
        onBackPressed()
    })
    placeorder.setOnClickListener {
        val intent:Intent=Intent(applicationContext, AddressActivity::class.java)
        startActivity(intent)
    }
   loadCart()
  }

   fun loadCart(){

  val model = ViewModelProvider(this)[CartViewModel::class.java]

  model.CartList?.observe(this, object : Observer<CartResponse> {
      override fun onChanged(t: CartResponse?) {

          generateDataList(t?.data?.toMutableList())
          totalamount.setText(t?.total.toString())
      }
  })
  }

fun generateDataList(dataList: MutableList<DataCart?>?) {
    val recyclerView=findViewById<RecyclerView>(R.id.addtocartrecyleview) as? RecyclerView
    val linear:LinearLayoutManager=
        LinearLayoutManager(applicationContext, LinearLayoutManager.VERTICAL, false)
    recyclerView?.layoutManager=linear
    val adapter = CartAdapter(this@AddToCart, dataList)
    recyclerView?.adapter=adapter
    recyclerView?.addItemDecoration(DividerItemDecorator(resources.getDrawable(R.drawable.divider)))


    adapter.notifyDataSetChanged()
     adapter.setItemClick(this)
    if (dataList?.isEmpty() ?: true) {
        recyclerView?.setVisibility(View.GONE)
        totalamount.setVisibility(View.GONE)
        fl_footer.setVisibility(View.GONE)
        placeorder.setVisibility(View.GONE)
        emptytext.setVisibility(View.VISIBLE)
    } else {
        recyclerView?.setVisibility(View.VISIBLE)
        totalamount.setVisibility(View.VISIBLE)
        fl_footer.setVisibility(View.VISIBLE)
        placeorder.setVisibility(View.VISIBLE)
        emptytext.setVisibility(View.GONE)


    }
  recyclerView?.addOnScrollListener(object :
      RecyclerView.OnScrollListener() {
      override fun onScrollStateChanged(recyclerView: RecyclerView, newState: Int) {
          super.onScrollStateChanged(recyclerView, newState)
          Log.e("RecyclerView", "onScrollStateChanged")
      }

      override fun onScrolled(recyclerView: RecyclerView, dx: Int, dy: Int) {
          super.onScrolled(recyclerView, dx, dy)
      }
  })
}
override fun onBackPressed() {
    super.onBackPressed()
    val intent = Intent(this, HomeActivity::class.java)
      startActivity(intent)
}
override fun onOptionsItemSelected(item: MenuItem): Boolean {
    return when (item.itemId) {
        android.R.id.home -> {
            NavUtils.navigateUpFromSameTask(this)

            true
        }
        else -> super.onOptionsItemSelected(item)
    }
}

override fun onResume() {
    super.onResume()
   loadCart()
}


override fun onItemClicked(position: Int) {

    val token: String = SharedPrefManager.getInstance(applicationContext).user.access_token.toString()
    RetrofitClient.instance.deletecart(token, id.toString())
        .enqueue(object : Callback<DeleteResponse> {
            override fun onFailure(call: Call<DeleteResponse>, t: Throwable) {

                Log.d("res", "" + t)


            }

            override fun onResponse(
                call: Call<DeleteResponse>,
                response: Response<DeleteResponse>
            ) {
                var res = response
                (applicationContext as Activity).finish()

                if (res.body()?.status == 200) {
                    Toast.makeText(
                        applicationContext,
                        res.body()?.message,
                        Toast.LENGTH_LONG
                    ).show()
                    val intent =
                        Intent(applicationContext, AddToCart::class.java)
                    intent.flags =
                        Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_MULTIPLE_TASK
                    applicationContext.startActivity(intent)
                    (applicationContext as Activity?)!!.overridePendingTransition(0, 0)


                } else {
                    try {
                        val jObjError =
                            JSONObject(response.errorBody()!!.string())
                        Toast.makeText(
                            applicationContext,
                            jObjError.getString("message") + jObjError.getString("user_msg"),
                            Toast.LENGTH_LONG
                        ).show()
                    } catch (e: Exception) {
                        Toast.makeText(applicationContext, e.message, Toast.LENGTH_LONG).show()
                        Log.e("errorrr", e.message)
                    }
                }
            }
        })

}
   }

adapter:--

class CartAdapter(private val context: Context, private val dataList: MutableList<DataCart?>?) :
RecyclerSwipeAdapter<CartAdapter.CustomViewHolder>() , AdapterView.OnItemSelectedListener{ //added RecyclerSwipeAdapter and override
private var itemClick: OnItemClick? = null

inner class CustomViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView),
    View.OnClickListener {
    val mView: View
  val swipelayout:SwipeLayout
    val productiamge: ImageView
    val productname: TextView
    val productcategory: TextView
    val productprice: TextView
    val tvDelete:TextView
    val spin:Spinner
    init {
        mView = itemView
    productiamge= mView.findViewById(R.id.imagecart)
       productname= mView.findViewById(R.id.imagenamecart)
        productcategory= mView.findViewById(R.id.imagecategory)

     productprice =mView.findViewById(R.id.price)
        swipelayout=mView.findViewById(R.id.swipe)
        tvDelete=mView.findViewById(R.id.tvDelete)
         spin = mView.findViewById(R.id.spinner) as Spinner
        tvDelete.setClickable(true);
        tvDelete.setOnClickListener(this);

    }

    override fun onClick(v: View?) {
        if (itemClick != null) {
            itemClick!!.onItemClicked(getPosition());
        }
    }


}

override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): CustomViewHolder {
    val layoutInflater = LayoutInflater.from(parent.context)
    val view: View = layoutInflater.inflate(R.layout.addtocart_item, parent, false)

    return CustomViewHolder(view)
}

override fun getSwipeLayoutResourceId(position: Int): Int {
    return R.id.swipe;

}

override fun onBindViewHolder(holder: CustomViewHolder, position: Int) {
  val  progressDialog :ProgressDialog= ProgressDialog(context);
    holder.productname.text = dataList?.get(position)?.product?.name ?: null
    holder.productcategory.text = "(" +dataList?.get(position)?.product?.product_category +")"

    holder.productprice.text = dataList?.get(position)?.product?.cost.toString()

    Glide.with(context).load(dataList?.get(position)?.product?.product_images)
        .into(holder.productiamge)

    holder.swipelayout.setShowMode(SwipeLayout.ShowMode.PullOut)
    Log.e("checkidd", dataList?.get(position)?.product?.id.toString())
    // Drag From Right

    // Drag From Right
    holder.swipelayout.addDrag(
        SwipeLayout.DragEdge.Right,
        holder.swipelayout.findViewById(R.id.bottom_wrapper)
    )
     val id =dataList?.get(position)?.product?.id

    holder.tvDelete.setOnClickListener(View.OnClickListener { view ->
        mItemManger.removeShownLayouts(holder.swipelayout)
        notifyItemChanged(position)
        notifyItemRemoved(position)
        dataList?.removeAt(position)
        notifyItemRangeChanged(position, dataList?.size!!)
        mItemManger.closeAllItems()
    })
    mItemManger.bindView(holder.itemView, position)


}
    override fun getItemCount() = dataList?.size ?: 0

override fun onNothingSelected(p0: AdapterView<*>?) {
    TODO("Not yet implemented")
}

override fun onItemSelected(p0: AdapterView<*>?, p1: View?, p2: Int, p3: Long) {

}
fun getItemClick(): OnItemClick? {
    return itemClick
}

fun setItemClick(itemClick: OnItemClick?) {
    this.itemClick = itemClick
}

}

but im not getting an desired output help me

解决方案

with the help of user EpicPandaForce i got an answer to problem question

Interface::----

interface OnItemClick {
fun DeleteItem(position: Int, id:Int)
}

Adapter::----

    private var itemClick: OnItemClick? = null
     .
    .
     .
      holder.tvDelete.setOnClickListener(View.OnClickListener { view ->
        mItemManger.removeShownLayouts(holder.swipelayout)
        notifyItemChanged(position)
        notifyItemRemoved(position)
        dataList?.removeAt(position)
        itemClick?.DeleteItem(position,id!!.toInt())

        notifyItemRangeChanged(position, dataList?.size!!)
        mItemManger.closeAllItems()
    })
    mItemManger.bindView(holder.itemView, position)


    }
    .
    .
     .
     
fun setItemClick(itemClick: OnItemClick?) {
    this.itemClick = itemClick
}

Activity::----

class AddToCart:BaseClassActivity(), OnItemClick{
 .
 .
  .
   onCreate(){
            adapter.setItemClick(this);
       .
       .
       .
       }
         override fun DeleteItem(position: Int, id:Int) {
    progressDialog?.show()
        viewModel.product_id.value =id.toString()
    viewModel.loaddelete()
    viewModel.Results.observe(this) { result ->
        when (result) {
            CartViewModel.Result.Missing -> {
                Toast.makeText(
                    applicationContext, "product is missing", Toast.LENGTH_LONG
                ).show()

            }


            CartViewModel.Result.Success -> {
                finish()
                val intent =
                    Intent(applicationContext, AddToCart::class.java)
                intent.flags =
                    Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_MULTIPLE_TASK
                startActivity(intent)
                overridePendingTransition(0, 0)                }
            else ->
            {
                Toast.makeText(applicationContext,"hello",Toast.LENGTH_LONG).show()
            }
        }
    }



}

Viewmodel::--------

fun loaddelete(){
    val id = product_id.value!!.toString().trim()

    val token: String = SharedPrefManager.getInstance(getApplication()).user.access_token.toString()
    RetrofitClient.instance.deletecart(token, id)
        .enqueue(object : Callback<DeleteResponse> {
            override fun onFailure(call: Call<DeleteResponse>, t: Throwable) {
                loginResultEmitter.emit(CartViewModel.Result.NetworkFailure)

                Log.d("res", "" + t)


            }

            override fun onResponse(
                call: Call<DeleteResponse>,
                response: Response<DeleteResponse>
            ) {
                var res = response


                if (res.body()?.status == 200) {
                    Toast.makeText(
                        getApplication(),
                        res.body()?.message,
                        Toast.LENGTH_LONG


                    ).show()


                    loginResultEmitter.emit(CartViewModel.Result.Success)



                } else {
                    try {
                        val jObjError =
                            JSONObject(response.errorBody()!!.string())
                        Toast.makeText(
                            getApplication(),
                            jObjError.getString("message") + jObjError.getString("user_msg"),
                            Toast.LENGTH_LONG
                        ).show()
                    } catch (e: Exception) {
                        Toast.makeText(getApplication(), e.message, Toast.LENGTH_LONG).show()
                        Log.e("errorrr", e.message)
                    }
                }
            }
        })




}

这篇关于在android中的适配器内改造调用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆