0

我正在使用“用于 Android UI 小部件的 RxJava 绑定 API”来触发按钮或 textview 上的点击事件。

用于触发事件的 PFB 代码(已编辑)

class BookAgentActivity : BaseActivity(), BookAgentView {

    @Inject
    @field:Named("activity")
    lateinit var compositeDisposable: CompositeDisposable

    @Inject
    lateinit var bookAgentViewModelFactory: BookAgentViewModelFactory

    private lateinit var bookAgentViewModel: BookAgentViewModel

    private lateinit var cityLocalityJson: CityLocalitiesMO


    override fun getLayoutId(): Int {
        return R.layout.activity_book_agent
    }

    override fun initializeDagger() {
        IleApplication.getRoomComponent().inject(this)
    }

    override fun initializeViewModel() {
        bookAgentViewModel = ViewModelProviders.of(this, bookAgentViewModelFactory).get(BookAgentViewModel::class.java)
        bookAgentViewModel.setView(this)
    }

    override fun setUpUi() {
        gradientStatusBar()
        cityLocalityJson = appPreferences.cityLocalitiesJson

        compositeDisposable.add(bookAgentCityLocationTV.clicks().observeOn(AndroidSchedulers.mainThread()).subscribe {
            startActivity(Intent(this, AreaLocalitiesActivity::class.java)
                .putExtra(AppConstants.COMING_FROM_AGENT_KEY, true))
        })

        compositeDisposable.add(filtersButton.clicks().observeOn(AndroidSchedulers.mainThread()).subscribe {
            startActivity(Intent(this, FiltersMainActivity::class.java)
                .putExtra(AppConstants.FILTER_TYPE_KEY, AppConstants.AGENT_FILTER))
        })

        compositeDisposable.add(searchAgentsButton.clicks()
            .subscribe { startActivity(Intent(this@BookAgentActivity, SearchAgentActivity::class.java)) })

    }

    override fun onSuccess(response: Any) {
        if (response is AgentsDetailAPIResponse) {
            response.let {
                val agentDetailsList = it.data
                if (agentDetailsList != null && agentDetailsList.size > 0) {
                    updateAgentPinsOnMap(agentDetailsList)
                }
            }
        }
    }

    override fun onDestroy() {
        super.onDestroy()
        compositeDisposable.clear()
    }
}

:) 上面的代码第一次可以正常工作

:(但是从BookAgentActivity (onBackPressed())回来后

点击事件不适用于searchAgentsButton以及其他视图

尝试过包含其他代码行的组合,如下所示:

.subscribeOn(Schedulers.newThread())
.observeOn(AndroidSchedulers.mainThread())
.share()

但是以上所有事情都不起作用。

4

0 回答 0