Я новичок в Android Dev.Я разрабатываю приложение, и мне нужно найти список производителей из firestore в моей деятельности.
У меня есть три специальности, и для каждой специальности мне нужно отобразить список во фрагменте.Таким образом, моя основная деятельность содержит три фрагмента (viewpager) и в каждом фрагменте я отображаю список производителей из firestore (я создал коллекцию по специальности), поэтому мне нужно найти данные из каждой коллекции для каждого фрагмента.Я создал один recycleradapter, мне нужно создать три?
Кроме того, я должен создать три запроса, где есть возможность создать один класс, а затем использовать для каждого фрагмента.
Iблокировал в течение нескольких дней.Можете ли вы помочь мне встать на правильный путь?
Большое вам спасибо.
Это мой RecyclerAdapter
класс:
class RecyclerAdapter (val productList: MutableList<Product>, val context: Context) : RecyclerView.Adapter<RecyclerAdapter.ViewHolder>()
{
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerAdapter.ViewHolder {
val view = LayoutInflater.from(parent.context).inflate(R.layout.recycler_productcard_item, parent, false)
return ViewHolder(view)
}
override fun getItemCount(): Int {
return productList.size
}
override fun onBindViewHolder(holder: RecyclerAdapter.ViewHolder, position: Int) {
val product = productList[position]
holder.speciality.text = product.speciality
holder.name.text= product.name
holder.codePostale.text = product.codePostale
holder.productCity.text = product.productCity
holder.adresse.text = product.adresse
holder.productEmail.text = product.productEmail
holder.phone.text = product.phone
holder.post.text = product.post
}
inner class ViewHolder internal constructor(view: View) : RecyclerView.ViewHolder(view){
internal var speciality : TextView = view.findViewById (R.id.speciality)
internal var name : TextView = view.findViewById(R.id.product)
internal var codePostale : TextView = view.findViewById(R.id.productCode)
internal var productCity : TextView = view.findViewById(R.id.productVille)
internal var adresse : TextView = view.findViewById(R.id.adress)
internal var productEmail : TextView = view.findViewById(R.id.product_mail)
internal var phone : TextView = view.findViewById(R.id.product_tel)
internal var post : TextView = view.findViewById(R.id.post)
}
}
data class Product( val speciality:String,
val name:String,
val codePostale:String,
val productCity:String,
val adresse:String,
val productEmail:String,
val phone:String,
val post:String
)
{
constructor(): this ("","","","","",
"","","")
fun toMap(): Map<String, Any> {
val result = HashMap<String, Any>()
result.put("speciality", speciality)
result.put("name", name)
result.put("codePostale", codePostale)
result.put("productCity", productCity)
result.put("adresse", adresse)
result.put("productEmail", productEmail)
result.put("phone", phone)
result.put("post", post)
return result
}
}
Пример одного фрагмента
class AgriculteurFragment : Fragment() {
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
// Inflate the layout for this fragment
return inflater.inflate(R.layout.fragment_agriculteur, container, false)
}
}