Ich habe eine Liste von einem Beitrag mit Recyclerview. Die Liste ist großartig, aber das Problem kommt, wenn ich versuche, ein Bild in der Recycleransicht hinzuzufügen. Ich verwende Glide, um die Bilder hinzuzufügen. Ich habe das Hinzufügen von Bildern mit Hilfe von Glide im Navigationsschublade nachgelesen, aber wenn ich es bei Recyclerview versuche, zeige es nichts als das Standardbild, das ich gefunden habe.Bild nicht bei Recyclerview mit Glide angezeigt
Dies ist meine Kotlin,
class InformationListActivity : MainActivity() {
private val glide: RequestManager? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_information_list)
val toolbar = findViewById<View>(R.id.toolbar) as Toolbar
setSupportActionBar(toolbar)
supportActionBar!!.setDisplayHomeAsUpEnabled(true)
supportActionBar!!.setDisplayShowHomeEnabled(true)
val user = FirebaseAuth.getInstance().currentUser
val uName = user?.displayName
val uEmail = user?.email
val uPhotoUrl = user?.photoUrl
user?.uid
val navigationView = findViewById<View>(R.id.nav_view) as NavigationView
navigationView.setNavigationItemSelectedListener(this)
val headerView = navigationView.getHeaderView(0)
val navName = headerView.findViewById<TextView>(R.id.navName)
navName.text = uName
val navEmail = headerView.findViewById<TextView>(R.id.navEmail)
navEmail.text = uEmail
val navImage = headerView.findViewById<ImageView>(R.id.navImage)
Glide.with(this).load(uPhotoUrl).into(navImage)
window.clearFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS)
val signOut = findViewById<View>(R.id.btnSignOut) as LinearLayout
signOut.setOnClickListener {
FirebaseAuth.getInstance().signOut()
val goToLogin = Intent([email protected], LoginActivity::class.java)
startActivity(goToLogin)
}
val recyclerView = findViewById<View>(R.id.recycler_view) as RecyclerView
recyclerView.setHasFixedSize(true)
recyclerView.layoutManager = LinearLayoutManager(this)
val myref = FirebaseDatabase.getInstance().reference.child("/posts")
val recyclerAdapter = object : FirebaseRecyclerAdapter<Post, InformationListActivity.PostViewHolder>(
Post::class.java,
R.layout.information_model,
InformationListActivity.PostViewHolder::class.java,
myref
) {
override fun populateViewHolder(viewHolder: InformationListActivity.PostViewHolder, model: Post, position: Int) {
val data_empty = findViewById<View>(R.id.data_empty) as TextView
data_empty.visibility = View.GONE
viewHolder.run {
glide?.let { setmPostImageUrl(it,model.getmPostImageUrl()) }
setmPostTitle(model.getmPostTitle())
setmPostDescription(model.getmPostDescription())
viewHolder.setItemClickListener(object : ItemClickListener {
override fun onItemClick(pos: Int) {
//OPEN DETAIL ACTIVITY
openInformationDetail(model.getmPostImageUrl(), model.getmPostTitle(), model.getmPostDescription())
}
})
}
}
}
recyclerView.adapter = recyclerAdapter
}
private fun openInformationDetail(vararg details: String) {
val i = Intent(this, InformationDetailActivity::class.java)
i.putExtra("POSTIMAGEURL_KEY", details[0])
i.putExtra("POSTTITLE_KEY", details[1])
i.putExtra("POSTDESCRIPTION_KEY", details[2])
startActivity(i)
}
class PostViewHolder(mView: View) : RecyclerView.ViewHolder(mView), View.OnClickListener {
private var modelImgPost: ImageView = mView.findViewById(R.id.imgPost)
private var modelPostTitle: TextView = mView.findViewById(R.id.modelPostTitle)
private var modelPostDescription: TextView = mView.findViewById(R.id.modelPostDescription)
private var btnMore: Button = mView.findViewById(R.id.btnMore)
private lateinit var itemClickListener: ItemClickListener
init {
btnMore.setOnClickListener(this)
}
fun setItemClickListener(itemClickListener: ItemClickListener) {
this.itemClickListener = itemClickListener
}
override fun onClick(view: View) {
this.itemClickListener.onItemClick(this.layoutPosition)
}
fun setmPostImageUrl(glide: RequestManager, mPostImageUrl: String) {
glide.load(Uri.parse(mPostImageUrl)).into(modelImgPost)
}
fun setmPostTitle(mPostTitle: String) {
modelPostTitle.text = mPostTitle
}
fun setmPostDescription(mPostDescription: String) {
modelPostDescription.text = mPostDescription
}
}
Lagern Glide nicht in einem Tätigkeitsfeld. Sie können Glide auf der Website wie folgt aufrufen: 'Glide.with (modelImgPost)'. –