程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Firebase 没有将信息输入我的 recyclerview android studio kotlin大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决Firebase 没有将信息输入我的 recyclerview android studio kotlin?

开发过程中遇到Firebase 没有将信息输入我的 recyclerview android studio kotlin的问题如何解决?下面主要结合日常开发的经验,给出你关于Firebase 没有将信息输入我的 recyclerview android studio kotlin的解决方法建议,希望对你解决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,请注明来意。