Просто чтобы прояснить заранее, я много раз искал в SO похожий вопрос, чтобы найти ответ на свой вопрос.
Я буду ссылаться на следующее (чтобы назвать несколько источников):
У меня есть MainActivity и четыре других различных вида деятельности, назовем их от A до D.
У меня также есть класс Utilities, который устанавливает для слушателей щелчка кнопки изображений, найденные в действиях от A до D.
Затем эти слушатели открывают новое действие, E.
По некоторым причинам, в методе onCreate
для действия E savedInstanceState
всегда равно нулю. Я попытался настроить слушателя из MainActivity, но безрезультатно. Я также передал контекст из MainActivity (вместо использования представления прокрутки), но это также не оказало влияния
Ниже приведен фрагмент кода.
Utilities.kt
class Utilities {
companion object {
/...
fun setTooltipsAndListeners(scrollView: ScrollView) {
val buttons: ArrayList<View> = scrollView.touchables
for (button in buttons) {
val tooltipText = button.contentDescription
if (tooltipText != null) {
TooltipCompat.setTooltipText(button, tooltipText)
}
button.setOnClickListener(object : View.OnClickListener {
override fun onClick(v: View?) {
val tag: String? = v?.tag as? String
val intent = Intent(scrollView.context, ActivityE::class.java)
intent.putExtra("symbol_name", tooltipText)
intent.putExtra("symbol_image", tag)
scrollView.context.startActivity(intent)
}
})
}
}
/...
}
ActivityE.kt
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.layout_name)
setDataToUI(savedInstanceState)
}
private fun setDataToUI(savedInstanceState: Bundle?) {
if (savedInstanceState == null) {
Log.d("TAG", "savedInstanceState IS NULL")
return
}
/... Inner logic that is not relevant
}