Вывести данные из Firestore на три фрагмента просмотра переработчика в KOTLIN ,, сложный запрос - PullRequest
0 голосов
/ 29 января 2019

Я новичок в 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)
 }
}
...