Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/183.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何修复android中RxBus中的调用复制方法_Android_Kotlin_Rx Java2 - Fatal编程技术网

如何修复android中RxBus中的调用复制方法

如何修复android中RxBus中的调用复制方法,android,kotlin,rx-java2,Android,Kotlin,Rx Java2,为什么不帮助我呢? 在我的应用程序中,我希望使用RxBus处理事件,使用MVP设计模式!我想在单击一个recyclerview项目时,调用fragment中的一个方法 为此,我使用了RxBus 我写了下面的代码,但当点击物品时调用2次方法 RxBus代码: object RxBus { private val publisher = PublishSubject.create<Any>() fun publish(event: Any) { pub

为什么不帮助我呢?

在我的应用程序中,我希望使用
RxBus
处理事件,使用MVP设计模式!我想在单击一个
recyclerview
项目时,调用
fragment
中的一个方法
为此,我使用了RxBus
我写了下面的代码,但当点击物品时调用2次方法

RxBus代码:

object RxBus {

    private val publisher = PublishSubject.create<Any>()

    fun publish(event: Any) {
        publisher.onNext(event)
    }

    fun <T> listen(eventType: Class<T>): Observable<T> = publisher.ofType(eventType)
}
class DashboardAvatarsFragment : RoundedBottomSheetDialogFragment(), DashboardAvatarsContracts.View {

    @NonNull
    private lateinit var presenter: DashboardAvatarsPresenterImpl
    private lateinit var token: String
    private lateinit var layoutManager: GridLayoutManager
    private lateinit var adapter: DashboardAvatarsAdapter
    @NonNull
    private var disposable: Disposable? = null

    override fun onCreateView(
        inflater: LayoutInflater, container: ViewGroup?,
        savedInstanceState: Bundle?
    ): View? {
        // Inflate the layout for this fragment
        return inflater.inflate(R.layout.fragment_dashboard_avatars, container, false)
    }

    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
        super.onViewCreated(view, savedInstanceState)
        //Initialize
        presenter = DashboardAvatarsPresenterImpl(requireContext(), this)
        layoutManager = GridLayoutManager(requireContext(), 5)
        //Get token
        token = GoodPrefs.getInstance().getString(PrefsKey.USER_JWT_TOKEN.name, "")
        //Send avatar
        disposable = RxBus.listen(EventUpdateAvatar.UpdateAvatar::class.java).subscribe {
            if (it.updateType == EVENTS_UPDATE_SEND_AVATAR) {
                Log.e("uploadAvatarLog", "Event")
                presenter.sendAvatarId(token, it.avatarId)
            }
        }

        //Get avatars list
        presenter.loadData(token)
    }

    override fun showAvatars(res: DashboardAvatarsResponse.Res) {
        adapter = DashboardAvatarsAdapter(requireContext(), res.avatars, res.baseUrl)
        dashboardAvatars_recyclerView.initRecyclerView(layoutManager, adapter)
    }

    override fun updateAvatar() {
        RxBus.publish(EventUpdateAvatar.UpdateAvatar(EVENTS_UPDATE_AVATAR, ""))
        Log.e("uploadAvatarLog", "Receive")
    }
}
我使用了
Log.e
来查看日志,但是请给我看重复的一些日志

2019-05-07 12:15:35.901 10259-10259/com.app.android E/uploadAvatarLog: Event
2019-05-07 12:15:35.902 10259-10259/com.app.android E/uploadAvatarLog: Adapter
2019-05-07 12:15:35.978 10259-10259/com.app.android E/uploadAvatarLog: Send
2019-05-07 12:15:35.978 10259-10259/com.app.android E/uploadAvatarLog: Event
2019-05-07 12:15:35.978 10259-10259/com.app.android E/uploadAvatarLog: Receive
2019-05-07 12:15:36.008 10259-10259/com.app.android E/uploadAvatarLog: Send
我如何修复它?

可能的重复可能的重复
2019-05-07 12:15:35.901 10259-10259/com.app.android E/uploadAvatarLog: Event
2019-05-07 12:15:35.902 10259-10259/com.app.android E/uploadAvatarLog: Adapter
2019-05-07 12:15:35.978 10259-10259/com.app.android E/uploadAvatarLog: Send
2019-05-07 12:15:35.978 10259-10259/com.app.android E/uploadAvatarLog: Event
2019-05-07 12:15:35.978 10259-10259/com.app.android E/uploadAvatarLog: Receive
2019-05-07 12:15:36.008 10259-10259/com.app.android E/uploadAvatarLog: Send