Итак, у меня есть проблема, что приложение будет сканировать sh, если кнопка «Назад» нажата во время извлечения службы во фрагменте. В настоящее время я использую Retrofit Library для выполнения задач по вызову сервисов. Ниже приведен фрагмент кода фрагмента:
ProductStockOutletListFragment.kt
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
(activity as AppCompatActivity).supportActionBar?.title = "Product List"
binding = DataBindingUtil.inflate(inflater, R.layout.fragment_product_stock_outlet_list, container, false)
//Show Progressbar While loading data
binding.progressBar.visibility = View.VISIBLE
//Apply layout manager
binding.rvOutletList.layoutManager = LinearLayoutManager((activity as AppCompatActivity))
NetworkConfig().getOutletListService()
.getOutlets()
.enqueue(object : Callback<OutletListPOJODataClasses> {
override fun onFailure(call: Call<OutletListPOJODataClasses>, t: Throwable) {
if(call.isCanceled){
Toast.makeText((activity as AppCompatActivity), "Request Aborted", Toast.LENGTH_SHORT).show()
}else{
Toast.makeText((activity as AppCompatActivity), t.localizedMessage, Toast.LENGTH_SHORT).show()
}
}
override fun onResponse(
call: Call<OutletListPOJODataClasses>,
response: Response<OutletListPOJODataClasses>
) {
binding.progressBar.visibility = View.GONE
binding.rvOutletList.adapter = response.body()?.let { OutletListAdapter(it, this@ProductStockOutletListFragment) }
Toast.makeText((activity as AppCompatActivity), "Data retrieved!", Toast.LENGTH_SHORT).show() //It points out this line. This is where the error happened.
}
})
// Declare that this fragment has menu
setHasOptionsMenu(true)
// Set action bar title to "Outlet List"
(activity as AppCompatActivity).supportActionBar?.title = "Outlet List"
return binding.root
}
Если нажать кнопку «Назад», он выдаст sh и вернет ошибку.
kotlin .TypeCastException: null не может быть приведен к ненулевому типу androidx.appcompat.app.AppCompatActivity
Ошибка, указанная в строке ниже в OnResponse()
Toast.makeText ((активность как AppCompatActivity), «Данные получены!», Toast.LENGTH_SHORT) .show ()
Я что-то упустил? Или, может быть, это проблема жизненного цикла? Дайте мне знать, если что-то неясно.
Изменить: По запросу, это полный журнал ошибок.