значение переменной получает значение null в модификации

У меня есть фрагмент с адаптером. Я использую модификацию для извлечения данных из Интернета

мое издевательство

class MyTransactionFragment : Fragment() { val disposable = CompositeDisposable() var transactionDetailList:ArrayList<TransactionData>? = null private var mApiSocket: ApiSocket? = null private var mRecyclerView:RecyclerView? = null var adapter:TransactionAdapter? = null companion object { val TAG = ItemFragment::class.java.simpleName!! fun newInstance(transactionPojo: TransactionPojo): MyTransactionFragment { val fragment = MyTransactionFragment() val args = Bundle() args.putSerializable(Constants.TRANSACTIONS, transactionPojo) fragment.arguments = args return fragment } } override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { val view = inflater.inflate(R.layout.fragment_my_transaction, container, false) mApiSocket = Utils().getApiSocket(activity!!) val layoutManager = LinearLayoutManager(activity, LinearLayoutManager.VERTICAL, false) view.mRecyclerViewTransaction.layoutManager = layoutManager view.mRecyclerViewTransaction.setHasFixedSize(true) if (arguments!=null && arguments!!.getSerializable(Constants.TRANSACTIONS) != null){ val transactionPojo = arguments!!.getSerializable(Constants.TRANSACTIONS) as TransactionPojo transactionDetailList = ArrayList(transactionPojo.transactions.data) adapter = TransactionAdapter(transactionDetailList, activity!!,disposable) view.mRecyclerViewTransaction.adapter = adapter mRecyclerView = view.mRecyclerViewTransaction val scrollListener = object : EndlessRecyclerViewScrollListener(layoutManager) { override fun onLoadMore(page: Int, totalItemsCount: Int, view: RecyclerView) { disposable.add(mApiSocket!!.transaction(""+page+1) .subscribeOn(Schedulers.newThread()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(MyTransactionFragment()::onResponse,MyTransactionFragment()::onError)) } } view.mRecyclerViewTransaction.addOnScrollListener(scrollListener) } return view } private fun onResponse(transactionPojo: TransactionPojo){ transactionDetailList = ArrayList(transactionPojo.transactions.data) adapter!!.addData(transactionDetailList) //here adapter variable gets null Why } fun onError(e: Throwable) { Log.e("TransactionFragment", e.toString()) if (e is NoNetWorkException) { Utils().showSnackBar(activity!!, "No Network connection") } else Utils().showSnackBar(activity!!, "Something went wrong please try again later") Utils().hideProgress() } override fun onDetach() { super.onDetach() disposable.dispose() } } 

В этой переменной адаптера в onResponse получает null Почему?

Последнее, что я нашел

Фактически я MyTransactionFragment()::onResponse в подписчике. что означает, что я помещаю результат в новый экземпляр MyTransactionFragment . Поэтому я изменил это на

 disposable.add(mApiSocket!!.transaction(""+page+1) .subscribeOn(Schedulers.newThread()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(::onResponse,::onError)) 
Intereting Posts
Kotlin – lateinit VS Any? = null Objectbox: Как инициализировать ToMany <> отношение в kotlin Kotlin делегирует собственность ленивым, это нить локальная Внедрение типизированного класса, параметризованного абстрактным типом После добавления макетов программно, как изменить текстовое представление «#» нажатием кнопки Создание WAV-файла с помощью Okio RxJava с использованием Kotlin – как синхронизировать 2 асинхронных метода, рефакторинг с Java Запечатанные обобщенные обобщенные классы в котлине, не связанные с внутренними классами Android Studio и Kotlin: нерешенные ссылки: также Не может быть возврата внутри Runnable SAM в Котлин? Kotlin: Можете ли вы использовать именованные аргументы для varargs? Инициализация многопоточных массивов в Котлине Разархивируйте файл в kotlin script У kotlin coroutines есть асинхронный вызов с таймером? Функции расширения для аннотированных типов