问题
I making my profile fragment and I want to display the post and the number of post in the Profile of the app. I have searched for the code from websites and I wrote this codes but this codes are not working. Here is my code
class ProfileFragment : Fragment() {
var fragmentView: View? = null
var firestore: FirebaseFirestore? = null
var uid: String? = null
var auth: FirebaseAuth? = null
var currentUserUid: String? = null
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
fragmentView = LayoutInflater.from(activity).inflate(R.layout.fragment_profile,container,false)
uid = arguments?.getString("destinationUid")
firestore = FirebaseFirestore.getInstance()
auth = FirebaseAuth.getInstance()
currentUserUid = auth?.currentUser?.uid
fragmentView?.account_reyclerview?.adapter = UserFragmentRecyclerviewAdapter()
fragmentView?.account_reyclerview?.layoutManager = GridLayoutManager(activity, 3)
return fragmentView
}
inner class UserFragmentRecyclerviewAdapter : RecyclerView.Adapter<RecyclerView.ViewHolder>(){
var contentDTOs:ArrayList<ContentDTO> = arrayListOf()
init {
firestore?.collection("images")?.whereEqualTo("uid",uid)?.addSnapshotListener{querySnapshot, firebaseFirestoreException ->
if (querySnapshot ==null){
return@addSnapshotListener
}
for (snapshot in querySnapshot.documents){
snapshot.toObject(ContentDTO::class.java)?.let { contentDTOs.add(it) }
}
fragmentView?.account_tv_post_count?.text = contentDTOs.size.toString()
notifyDataSetChanged()
}
}
override fun onCreateViewHolder(parent: ViewGroup, p0: Int): RecyclerView.ViewHolder {
var width = resources.displayMetrics.widthPixels/3
var imageView = ImageView(parent.context)
imageView.layoutParams = LinearLayoutCompat.LayoutParams(width,width)
return CustomViewHolder(imageView)
}
inner class CustomViewHolder(var imageview: ImageView) : RecyclerView.ViewHolder(imageview) {
}
override fun getItemCount(): Int {
return contentDTOs.size
}
override fun onBindViewHolder(p0: RecyclerView.ViewHolder, p1: Int) {
var imageview = (p0 as CustomViewHolder).imageview
Glide.with(p0.itemView.context).load(contentDTOs[p1].imageUrl).apply(RequestOptions().centerCrop()).into(imageview)
}
}
}
来源:https://stackoverflow.com/questions/62726564/profile-fragment-code-not-working-in-kotlin