大佬教程收集整理的这篇文章主要介绍了Firebase 没有将信息输入我的 recyclerview android studio kotlin,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试用我的用户数据填充我的 recyclervIEw,但它没有显示。我根本没有收到任何错误,所以我不知道 recyclerVIEw 发生了什么。
这是我的搜索片段
class SearchFragment : Fragment() {
private var recyclerVIEw: RecyclerVIEw? = null
private var userAdapter: UserAdapter? = null
private var mUser: MutableList<User>? = null
overrIDe fun onCreateVIEw(
inflater: LayoutInflater,container: VIEwGroup?,savedInstanceState: Bundle?
): VIEw? {
// Inflate the layout for this fragment
val vIEw = inflater.inflate(R.layout.fragment_search,container,falsE)
recyclerVIEw = vIEw.findVIEwByID(R.ID.recycler_vIEw_search)
recyclerVIEw?.setHasFixedSize(true)
recyclerVIEw?.layoutManager = linearlayoutmanager(context)
mUser = ArrayList()
userAdapter = context?.let { UserAdapter(it,mUser as ArrayList<User>,truE) }
recyclerVIEw?.adapter = userAdapter
vIEw.search_text.addTextChangedListener(object: TextWatcher
{
overrIDe fun beforeTextChanged(s: CharSequence?,start: Int,count: Int,after: int)
{
}
overrIDe fun ontextChanged(s: CharSequence?,before: Int,count: int)
{
if (vIEw.search_text.text.toString() == "")
{
}
else
{
recyclerVIEw?.visibility = VIEw.VISIBLE
retrIEveUsers()
searchUser(s.toString().tolowerCase())
}
}
overrIDe fun afterTextChanged(s: Editable?)
{
}
})
return vIEw
}
private fun searchUser(input: String)
{
val query = FirebaseDatabase.geTinstance().getReference()
.child("Users")
.orderByChild("fullname")
.startAt(input)
.endAt(input + "\uf8ff")
query.addValueEventListener(object : ValueEventListener
{
overrIDe fun onDataChange(dataSnapshot: DataSnapshot)
{
mUser?.clear()
for (snapshot in dataSnapshot.children)
{
val user = snapshot.getValue(User::class.java)
if (user != null)
{
mUser?.add(user)
}
}
userAdapter?.notifyDataSetChanged()
}
overrIDe fun onCancelled(p0: DatabaseError)
{
}
})
}
private fun retrIEveUsers()
{
val usersRef = FirebaseDatabase.geTinstance().getReference().child("Users")
usersRef.addValueEventListener(object : ValueEventListener
{
overrIDe fun onDataChange(dataSnapshot: DataSnapshot)
{
if (vIEw?.search_text?.text.toString() == "")
{
mUser?.clear()
for (snapshot in dataSnapshot.children)
{
val user = snapshot.getValue(User::class.java)
if (user != null)
{
mUser?.add(user)
}
}
userAdapter?.notifyDataSetChanged()
}
}
overrIDe fun onCancelled(p0: DatabaseError)
{
}
})
}
}
这是我的模特
class User {
private var uID: String = ""
private var firstname: String = ""
private var secondname: String = ""
private var mobile: String = ""
private var dateOfBirth: String = ""
private var email: String = ""
private var type: String = ""
private var status: String = ""
constructor(uID: String,firstname: String,secondname: String,mobile: String,dateOfBirth: String,email: String,type: String,status: String) {
thiS.UID = uID
this.firstname = firstname
this.secondname = secondname
this.mobile = mobile
this.dateOfBirth = dateOfBirth
this.email = email
this.type = type
this.status = status
}
fun getFirstname(): String
{
return firstname
}
fun setFirstname(firstname: String)
{
this.firstname = firstname
}
fun getLastname(): String
{
return secondname
}
fun setLastname(secondname: String)
{
this.secondname = secondname
}
fun getMobile(): String
{
return mobile
}
fun setMobile(mobile: String)
{
this.mobile = mobile
}
fun getDateOfBirth(): String
{
return dateOfBirth
}
fun setDateOfBirth(dateOfBirth: String)
{
this.dateOfBirth = dateOfBirth
}
fun getEmail(): String
{
return email
}
fun setEmail(email: String)
{
this.email = email
}
fun getType(): String
{
return type
}
fun setType(type: String)
{
this.type = type
}
fun getStatus(): String
{
return status
}
fun setStatus(status: String)
{
this.status = status
}
fun getUID(): String
{
return uID
}
fun setUID(uID: String)
{
thiS.UID = uID
}
}
这是我的适配器
class UserAdapter (private var mContext: Context,private var mUser: List<User>,private var isFragment: Boolean = false ) : RecyclerVIEw.Adapter<UserAdapter.VIEwHolder>()
{
private var firebaseUser: FirebaseUser? = FirebaseAuth.geTinstance().currentUser
overrIDe fun onCreateVIEwHolder(parent: VIEwGroup,vIEwType: int): UserAdapter.VIEwHolder {
val vIEw = LayoutInflater.from(mContext).inflate(R.layout.user_item_layout,parent,falsE)
return UserAdapter.VIEwHolder(vIEw)
}
overrIDe fun onBindVIEwHolder(holder: UserAdapter.VIEwHolder,position: int) {
val user = mUser[position]
holder.firstnameTextVIEw.text = user.getFirstname()
holder.secondnameTextVIEw.text = user.getLastname()
holder.emailTextVIEw.text = user.getEmail()
holder.mobileTextVIEw.text = user.getMobile()
holder.dateOfbirthTextVIEw.text = user.getDateOfBirth()
holder.statusTextVIEw.text = user.getStatus()
holder.itemVIEw.setonClickListener(VIEw.onClickListener {
val pref = mContext.getSharedPreferences("PREFS",Context.MODE_PRIVATE).edit()
pref.putString("profilEID",user.getUID())
pref.apply()
// (mContext as UserProfileActivity)
// .replace
})
}
overrIDe fun getItemCount(): Int {
return mUser.size
}
class VIEwHolder (@NonNull itemVIEw: VIEw) : RecyclerVIEw.VIEwHolder(itemVIEw)
{
var firstnameTextVIEw: TextVIEw = itemVIEw.findVIEwByID(R.ID.first_name_search)
var secondnameTextVIEw: TextVIEw = itemVIEw.findVIEwByID(R.ID.second_name_search)
var emailTextVIEw: TextVIEw = itemVIEw.findVIEwByID(R.ID.email_search)
var mobileTextVIEw: TextVIEw = itemVIEw.findVIEwByID(R.ID.mobile_search)
var dateOfbirthTextVIEw: TextVIEw = itemVIEw.findVIEwByID(R.ID.dateofbirth_search)
var statusTextVIEw: TextVIEw = itemVIEw.findVIEwByID(R.ID.status)
}
}
这是我的 user_item_layout,用于在搜索片段中显示我的用户信息
<relativeLayout
xmlns:androID="http://scheR_295_11845@as.androID.com/apk/res/androID"
xmlns:app="http://scheR_295_11845@as.androID.com/apk/res-auto"
androID:layout_wIDth="match_parent"
androID:layout_height="wrap_content"
androID:layout_margintop="10dp"
androID:layout_marginleft="90dp"
androID:layout_marginRight="90dp"
androID:BACkground="@drawable/btn_top_black"
>
<relativeLayout
androID:layout_wIDth="wrap_content"
androID:layout_height="wrap_content"
androID:layout_centerHorizontal="true"
>
<de.hdodenhof.circleimagevIEw.circleimageVIEw
androID:ID="@+ID/profile_image"
androID:layout_height="120dp"
androID:layout_wIDth="120dp"
androID:src="@drawable/user_320px"
androID:padding="5dp"
androID:layout_margintop="10dp"
androID:layout_centerHorizontal="true"
/>
<TextVIEw
androID:ID="@+ID/first_name_search"
androID:layout_wIDth="match_parent"
androID:layout_height="wrap_content"
androID:text="first name"
androID:textSize="12sp"
androID:gravity="center"
androID:layouT_Below="@+ID/profile_image"
>
</TextVIEw>
<TextVIEw
androID:ID="@+ID/second_name_search"
androID:layout_wIDth="match_parent"
androID:layout_height="wrap_content"
androID:text="last name"
androID:textSize="12sp"
androID:layout_margintop="2dp"
androID:gravity="center"
androID:layouT_Below="@+ID/first_name_search"
>
</TextVIEw>
<TextVIEw
androID:ID="@+ID/email_search"
androID:layout_wIDth="match_parent"
androID:layout_height="wrap_content"
androID:text="email"
androID:textSize="12sp"
androID:layout_margintop="2dp"
androID:gravity="center"
androID:layouT_Below="@+ID/second_name_search">
</TextVIEw>
<TextVIEw
androID:ID="@+ID/mobile_search"
androID:layout_wIDth="match_parent"
androID:layout_height="wrap_content"
androID:text="mobile number"
androID:textSize="12sp"
androID:layout_margintop="2dp"
androID:gravity="center"
androID:layouT_Below="@+ID/email_search">
</TextVIEw>
<TextVIEw
androID:ID="@+ID/dateofbirth_search"
androID:layout_wIDth="match_parent"
androID:layout_height="wrap_content"
androID:text="date of birth"
androID:textSize="12sp"
androID:layout_margintop="2dp"
androID:gravity="center"
androID:layouT_Below="@+ID/mobile_search">
</TextVIEw>
<TextVIEw
androID:ID="@+ID/status"
androID:layout_wIDth="match_parent"
androID:layout_height="wrap_content"
androID:textSize="12sp"
androID:gravity="center"
androID:layouT_Below="@+ID/dateofbirth_search"
androID:text="Application status" />
</relativeLayout>
</relativeLayout>
我需要这方面的帮助,我不知道它出了什么问题,一直在学习有关如何操作的教程,但结果仍然如此。不知道我必须做什么才能修复它。我到处找。但没什么。甚至更改了布局,但仍然没有帮助。
谁能告诉我我做错了什么。
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)
以上是大佬教程为你收集整理的Firebase 没有将信息输入我的 recyclerview android studio kotlin全部内容,希望文章能够帮你解决Firebase 没有将信息输入我的 recyclerview android studio kotlin所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。