【发布时间】:2020-11-27 15:28:51
【问题描述】:
我有一个价值
txtId.text = iduser
这是位于 MainActivity,我想从我的 MainActivity 传递这个值
到我的适配器
override fun getParams(): MutableMap<String, String> {
val params = HashMap<String, String>()
params["userid"] = ???
params["produkid"]=produks[position].id.toString()
params["quantity"]= 1.toString()
return params
}
我想要这个
params["userid"] = ???
在我的 MainActivity 中有一个来自 textview 的值,但我不知道如何将该值传递给我的适配器。 所以我可以将它存储到我的数据库中
这是我在 MainActivity 中的代码
class MainActivity : AppCompatActivity() {
val fragments:ArrayList<Fragment> = ArrayList()
var iduser=""
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
fragments.add(HomeFragment())
fragments.add(CartFragment())
fragments.add(OrderHistoryFragment())
fragments.add(ProfileFragment())
iduser =intent.getStringExtra(LoginActivity.IDUSER).toString()
txtId.text = iduser
viewPager.adapter = Adapter(this,fragments)
viewPager.registerOnPageChangeCallback(object:ViewPager2.OnPageChangeCallback(){
override fun onPageSelected(position: Int) {
val menu = arrayOf(R.id.itemHome,R.id.itemCart,R.id.itemOrderHistory,R.id.itemProfile)
bottomNav.selectedItemId=menu[position]
}
})
bottomNav.setOnNavigationItemSelectedListener {
if(it.itemId == R.id.itemHome) {
viewPager.currentItem = 0
} else if(it.itemId == R.id.itemCart) {
viewPager.currentItem = 1
} else if(it.itemId == R.id.itemOrderHistory) {
viewPager.currentItem = 2
} else {
viewPager.currentItem = 3
}
true
}
}
}
这是我在适配器中的代码
class ProdukAdapter(val produks:ArrayList<Produk>, val ctx:Context):RecyclerView.Adapter<ProdukAdapter.ProdukViewHolder>(){
class ProdukViewHolder(val view: View):RecyclerView.ViewHolder(view){
}
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ProdukViewHolder {
val inflater = LayoutInflater.from(parent.context)
val view = inflater.inflate(R.layout.home_card_layout,parent,false)
return ProdukViewHolder(view)
}
override fun onBindViewHolder(holder: ProdukViewHolder, position: Int) {
val url = produks[position].gambar
Picasso.get().load(url).into(holder.view.imgProduk)
holder.view.txtJudul.text = produks[position].judul
holder.view.txtDeskripsi.text = produks[position].deskripsi
holder.view.txtHarga.text = produks[position].harga.toString()
holder.view.btnAddtoCart.setOnClickListener {
val q = Volley.newRequestQueue(ctx)
val url = "http://10.0.2.2/project/addtocart.php"
val stringRequest = object: StringRequest(
Request.Method.POST, url,
Response.Listener {
Log.d("cekparams", it)
},
Response.ErrorListener {
Log.d("cekparams", it.message.toString())
}) {
override fun getParams(): MutableMap<String, String> {
val params = HashMap<String, String>()
params["userid"] = ???
params["produkid"]=produks[position].id.toString()
params["quantity"]= 1.toString()
return params
}
}
q.add(stringRequest)
}
}
override fun getItemCount(): Int {
return produks.size
}
}
所以简单来说我想要这个代码
params["userid"] = ???
从这段代码中获得价值
txtId.text = iduser
喜欢这个
params["userid"] = txtId.text
【问题讨论】:
标签: android android-studio kotlin android-activity android-adapter