在android中的适配器内改造调用

编程入门 行业动态 更新时间:2024-10-22 17:21:21
本文介绍了在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中的适配器内改造调用

本文发布于:2023-10-31 07:31:25,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1545441.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:适配器   android

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!