Передача данных из базовой активности в активность, которая ее расширяет - PullRequest
0 голосов
/ 13 июля 2020

У меня есть действие, которое расширяет базовое действие следующим образом:

class MainActivity : BaseActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        getInfo("Pojo")
        }
}

Моя базовая активность выполняет некоторый доступ к API и возвращает такой ответ:

abstract class BaseActivity : AppCompatActivity() {

    companion object {
        @JvmStatic var compositeDisposable: CompositeDisposable?=null
    }

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        compositeDisposable = CompositeDisposable()
    }

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

    fun getTvShows(query: String) {

        compositeDisposable?.add(
            ApiClient.getClient.getTV(Params.getParamsSearch(1, query))
                .observeOn(AndroidSchedulers.mainThread())
                .subscribeOn(Schedulers.io())
                .subscribe(this::handleResponseTvShows)
        )
    }

    private fun handleResponseTvShows(result: ObjectsSearchTVShows) {
       
       //Need to send result back to MainActivity or any activity that extends BaseActivity
    }
}

Мне нужно отправить результат возвращается в MainActivity или любое действие, которое расширяет BaseActivity, как я могу этого добиться?

1 Ответ

0 голосов
/ 13 июля 2020

Сделайте handleResponseTvShows abstract и protected:

protected abstract fun handleResponseTvShows(result: ObjectsSearchTVShows)

и реализуйте его в MainActivity:

override protected fun handleResponseTvShows(result: ObjectsSearchTVShows) {
  // process the result here
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...