如何解决如何获得通知徽章计数器来计算收到的点赞数量?
我正在使用firebase数据库,并且将一个孩子添加到我的通知片段时,我希望计数器对其进行计数。 Notification fragment here
包supgro.com.Controller.Service
MainActivity类:AppCompatActivity(){
private val onNavigationItemSelectedListener = BottomNavigationView.OnNavigationItemSelectedListener { item ->
when (item.itemId) {
R.id.nav_home -> {
moveToFragment(HomeFragment())
return@OnNavigationItemSelectedListener true
}
R.id.nav_search -> {
moveToFragment(SearchFragment())
return@OnNavigationItemSelectedListener true
}
R.id.nav_add -> {
moveToFragment(PostSelectionFragment())
return@OnNavigationItemSelectedListener true
}
R.id.nav_notifications -> {
moveToFragment(NotificationsFragment())
return@OnNavigationItemSelectedListener true
}
R.id.nav_profile -> {
moveToFragment(ProfileFragment())
return@OnNavigationItemSelectedListener true
}
}
false
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
firebaseUser = FirebaseAuth.getInstance().currentUser
val navView:BottomNavigationView = findViewById(R.id.bottom_nav_view)
navView.setOnNavigationItemSelectedListener(onNavigationItemSelectedListener)
navView.getOrCreateBadge(R.id.nav_notifications).apply{
number = 1
isVisible = true
}
moveToFragment(HomeFragment())
}
私人乐趣moveToFragment(片段:片段){
val fragmentTrans = supportFragmentManager.beginTransaction()
fragmentTrans.replace(R.id.fragment_container,fragment)
fragmentTrans.commit()
} }
通知适配器
包supgro.com.Controller.Adapter
class NotificationAdapter(val mContext:Context,val mNotification:List):RecyclerView.Adapter
private val onNavigationView: Int = R.id.nav_notifications
override fun onCreateViewHolder(parent: ViewGroup,viewType: Int): Holder {
val view = LayoutInflater.from(mContext).inflate(R.layout.notifications_item_layout,parent,false)
return Holder(view)
}
override fun onBindViewHolder(holder: Holder,position: Int) {
val notification = mNotification[position]
if (notification.getText().equals("started supporting you")){
holder.commentText.text = "started supporting you"
}else if (notification.getText().equals("liked your post")){
holder.commentText.text = "liked your post"
}else if (notification.getText().contains("commented:")){
holder.commentText.text = notification.getText().replace("commented:","commented: ")
}else if(notification.getText().equals("saved your post")){
holder.commentText.text = "saved your post!"
}else{
holder.commentText.text = notification.getText()
}
userInfo(holder.profileImage,holder.userName,notification.getUserId())
if (notification.isIsPost())
{
holder.postImage.visibility = View.VISIBLE
getPostImage(holder.postImage,notification.getPostid())
}
else
{
holder.postImage.visibility = View.GONE
}
holder.itemView.setOnClickListener{
if (notification.isIsPost()){
val editor = mContext.getSharedPreferences("PREFS",Context.MODE_PRIVATE).edit()
editor.putString("postId",notification.getPostid())
editor.apply()
(mContext as FragmentActivity).getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container,PostDetailsFragment()).commit()
}else{
val editor = mContext.getSharedPreferences("PREFS",Context.MODE_PRIVATE).edit()
editor.putString("profileId",notification.getUserId())
editor.apply()
(mContext as FragmentActivity).getSupportFragmentManager()
.beginTransaction()
.replace(R.id.fragment_container,ProfileFragment()).commit()
}
}
}
override fun getItemCount(): Int {
return mNotification.size
}
inner class Holder(@NonNull itemView: View) : RecyclerView.ViewHolder(itemView){
var profileImage: CircleImageView = itemView.findViewById(R.id.notification_profile_image)
var postImage: ImageView = itemView.findViewById(R.id.notification_post_image)
var userName: TextView = itemView.findViewById(R.id.username_notification)
var commentText: TextView = itemView.findViewById(R.id.comment_notification)
}
private fun userInfo(imageView: ImageView,userName: TextView,publisherId: String){
val userRef = FirebaseDatabase.getInstance().getReference()
.child("username")
.child(publisherId)
userRef.addValueEventListener(object: ValueEventListener {
override fun onDataChange(p0: DataSnapshot) {
if (p0.exists()){
val user = p0.getValue<User>(User::class.java)
Glide.with(mContext).load(user!!.getImage()).placeholder(R.drawable.add_profile_image).into(imageView)
userName.text = user!!.getUsername()
}
}
override fun onCancelled(p0: DatabaseError) {
TODO("Not yet implemented")
}
})
}
private fun getPostImage(imageView: ImageView,postID: String){
val postRef = FirebaseDatabase.getInstance().reference
.child("Posts")
.child(postID)
postRef.addValueEventListener(object: ValueEventListener {
override fun onDataChange(p0: DataSnapshot) {
if (p0.exists()){
val post = p0.getValue<Post>(Post::class.java)
Glide.with(mContext).load(post!!.getPostImage()).placeholder(R.drawable.add_profile_image).into(imageView)
}
}
override fun onCancelled(p0: DatabaseError) {
}
})
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。