如何解决没有连接适配器;跳过数据列表中的布局问题
我收到错误:
recyclerview 没有连接适配器;跳过布局
而且 recyvlerview 中的数据根本没有显示。我正在使用 firebase 并想从子“fasilitas”中获取数据,但遇到了这样的错误。我该怎么办?
HotelDetailActivity.kt
class HotelDetailActivity : AppCompatActivity() {
private lateinit var mDatabase : DatabaseReference
private var dataList = ArrayList<FasilitasModel>()
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_hotel_detail)
val data = intent.getParcelableExtra<Hotel>("data")
mDatabase = FirebaseDatabase.getInstance().getReference("Hotel")
.child(data!!.namaHotel.toString())
.child("fasilitas")
tv_namaHotel.text = data!!.namaHotel
tv_biaya.text = data!!.biaya
tv_deskripsi.text = data!!.deskripsi
tv_lokasi.text = data!!.lokasi
tv_rate2.text = data!!.rating
Glide.with(this)
.load(data.poster)
.into(iv_poster)
rv_fasilitas.layoutManager = LinearLayoutManager(this,LinearLayoutManager.HORIZONTAL,false)
getData()
}
private fun getData() {
mDatabase.addValueEventListener(object: ValueEventListener{
override fun onDataChange(snapshot: DataSnapshot) {
dataList.clear()
for(getdataSnapshot in snapshot.children){
var Hotel = getdataSnapshot.getValue(FasilitasModel::class.java)
dataList.add(Hotel!!)
}
rv_fasilitas.adapter = FasilitasAdapter(dataList){
}
}
override fun onCancelled(error: DatabaseError) {
Toast.makeText(this@HotelDetailActivity,""+error.message,Toast.LENGTH_LONG).show()
}
})
}
}
FasilitasAdapter
class FasilitasAdapter(
private var data: List<FasilitasModel>,private val listener: (FasilitasModel) -> Unit)
: RecyclerView.Adapter<FasilitasAdapter.LeagueViewHolder>() {
lateinit var contextAdapter: Context
override fun onCreateViewHolder(
parent: ViewGroup,viewType: Int
): LeagueViewHolder {
val layoutInflater = LayoutInflater.from(parent.context)
contextAdapter = parent.context
val inflatedView: View = layoutInflater.inflate(R.layout.row_item_fasilitas,parent,false)
return LeagueViewHolder(inflatedView)
}
override fun onBindViewHolder(holder: LeagueViewHolder,position: Int) {
holder.bindItem(data[position],listener,contextAdapter,position)
}
override fun getItemCount(): Int = data.size
class LeagueViewHolder(view: View) : RecyclerView.ViewHolder(view) {
private val tvNamaFasilitas: TextView = view.findViewById(R.id.tv_fasilitas)
private val ivFasilitas: ImageView = view.findViewById(R.id.iv_ic_fasilitas)
fun bindItem(data: FasilitasModel,listener: (FasilitasModel) -> Unit,context: Context,position: Int) {
tvNamaFasilitas.text = data.nama
Glide.with(context)
.load(data.url)
.apply(RequestOptions.circleCropTransform())
.into(ivFasilitas)
itemView.setOnClickListener {
listener(data)
}
}
}
}
Fasilitas 模型
import android.os.Parcelable
import kotlinx.android.parcel.Parcelize
@Parcelize
data class FasilitasModel (
var nama: String ?="",var url: String ?=""
): Parcelable
酒店模型
import android.os.Parcelable
import kotlinx.android.parcel.Parcelize
@Parcelize
data class Hotel (
var biaya: String ?="",var deskripsi: String ?="",var lokasi: String ?="",var namaHotel: String ?="",var poster: String ?="",var rating: String ?="",): Parcelable
Firebase 数据库
RecyclerView 不显示只发生在“facilitas”而不是“hotel”上。 我在代码中没有看到任何红色警告,只有未显示布局和 logcat 中的“未连接适配器;正在跳过”警告。谢谢:)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。