تابستون داره تموم میشه ها، فرصت‌ها محدودن کلی آفر جذاب در کمپین تابستون🔥👇
۰ ثانیه
۰ دقیقه
۰ ساعت
۲ Sezar
Subcribe Event Bus
جامعه جاوا (اندروید) ایجاد شده در ۱۵ مرداد ۱۴۰۰

سلام 
تکه کد هایی که مربوط به postSnicky رو به صورت زیر در viewModel و activity وارد کردم ولی متدی که subcribe شده تو activity جرا نمیشه در نتیجه badge نمایش داده نمیشه مشکل از کدوم قسمته 

 

viewModel

fun getCartItemsCount() {
		if (!TokenContainer.token.isNullOrEmpty()) {
			cartRepository.getCartItemCount()
				.subscribeOn(Schedulers.io())
				.subscribe(object : NikeSingleObserver<CartItemCount>(compositeDisposable) {
					override fun onSuccess(itemCount: CartItemCount) {
						Timber.i("getCartItemsCount ===== >>> ${itemCount.count}")
						EventBus.getDefault().postSticky(itemCount)
					}
				})
		}
	}

activity  این متود کال نمیشه 

@Subscribe(sticky = true,threadMode = ThreadMode.MAIN)
	fun onCartItemsCountChangeEvent(cartItemCount: CartItemCount) {
		Timber.i("-------- >>> change event badge ${cartItemCount.count}")
		val badge = bottomNavigationMain.getOrCreateBadge(R.id.cart)
		badge.badgeGravity = BadgeDrawable.BOTTOM_START
		badge.backgroundColor = MaterialColors.getColor(bottomNavigationMain, R.attr.colorPrimary)
		badge.number = cartItemCount.count
//		badge.verticalOffset = 10.toPx
		badge.isVisible = cartItemCount.count > 0
	}

بر اساس داکیومت باید رجیستر انجام بشه  مشکل حل میشه 

@Override
public void onStart() {
    super.onStart();
    EventBus.getDefault().register(this);
}
// UI updates must run on MainThread
@Subscribe(sticky = true, threadMode = ThreadMode.MAIN)
public void onEvent(MessageEvent event) {   
    textField.setText(event.message);
}
@Override
public void onStop() {
    EventBus.getDefault().unregister(this);    
    super.onStop();
}
Sezar ۱۵ مرداد ۱۴۰۰، ۱۹:۳۷

سلام

قبلا عمل رجیستر/آنرجسیتر رو در (NikeActivity) انجام دادیم، بررسی کنید که (MainActivity) شما این کلاس رو اکستند کرده باشه

محمد حسین احمدی ۲۱ مهر ۱۴۰۰، ۰۱:۲۷