notifyDataChanged () не удалось обновить данные расширяемого списка

Я работаю над расширяемым списком, и после того, как я создаю награжденное объявление, я хочу добавить расширяемое listview после того, как пользователь просмотрит вознагражденное объявление, но приложение вылетает с ошибкой монитора Android. Вот код …

class MainActivity : Activity(),RewardedVideoAdListener { override fun onRewardedVideoAdClosed() = Unit override fun onRewardedVideoAdLeftApplication() = Unit override fun onRewardedVideoAdLoaded() = Unit override fun onRewardedVideoAdOpened() = Unit override fun onRewarded(rewardedLiterature: RewardItem?) { rewardedLiterature.apply { ParentList.add("New Articles") ParentList.reverse() } } override fun onRewardedVideoStarted() = Unit override fun onRewardedVideoAdFailedToLoad(p0: Int) { Toast.makeText(this,"Please try again",Toast.LENGTH_SHORT).show() } private lateinit var childlist: MutableList<String> private lateinit var ParentListItems: MutableMap<String, List<String>> private lateinit var expandabilityView: ExpandableListView private var ParentList: MutableList<String> = ArrayList() ) private var poems = arrayOf("Five","Six","Seven") private var LoveName = arrayOf("Eight","Nine","Ten","Eleven") private var moreLiterature = arrayOf("ZOne","zTwo","ZThree") private var ByDefaultMessage = arrayOf("Items Loading") private lateinit var mRewardedVideoAd : RewardedVideoAd init { ParentList.add("Letters") ParentList.add("Poems") ParentList.add("Let's Chill!") } override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) mRewardedVideoAd = MobileAds.getRewardedVideoAdInstance(this) mRewardedVideoAd.rewardedVideoAdListener = this loadRewardedVideoAd() val moreContentButton = findViewById<FloatingActionButton>(R.id.moreContents) moreContentButton.setOnClickListener{ if (mRewardedVideoAd.isLoaded) { mRewardedVideoAd.show() } } ParentListItems = LinkedHashMap() for (HoldItem in ParentList) { when (HoldItem) { "Letters" -> loadChild(funnyLiterature) "Poems" -> loadChild(poems) "Let's Chill!" -> loadChild(LoveName) "New Articles" -> loadChild(moreLiterature) else -> loadChild(ByDefaultMessage) } ParentListItems.put(HoldItem, childlist) } expandabilityView = findViewById(R.id.expandableListView1) val expListAdapter = ListAdapter( this, ParentList, ParentListItems) expandabilityView.setAdapter(expListAdapter) expListAdapter.notifyDataSetChanged() expandabilityView.setOnChildClickListener {_, _, groupPosition, childPosition, _ -> val selected = expListAdapter.getChild( groupPosition, childPosition) as String val intent = Intent(this@MainActivity, DetailActivity::class.java) when (selected) { "ማትስ ተማሪ ለፍቅረኛዋ የፃፈችዉ ደብዳቤ" -> titleOfContent = detailContents[0] "የህግ ተመራቂ ለፍቅረኛዉ የፃፈዉ መልእክት" -> titleOfContent = detailContents[1] "የ‹ለምን አንተን ወደድኩህ?›ፍልስፍና" -> titleOfContent = detailContents[2] "አጭር መልእክት" -> titleOfContent = detailContents[3] } private fun loadRewardedVideoAd() = mRewardedVideoAd.loadAd("ca-app-pub-xxxxxxx", AdRequest.Builder().build()) private fun loadChild(ParentElementsName: Array<String>) { childlist = ArrayList() for (model in ParentElementsName) childlist.add(model) } companion object { internal var titleOfContent: String ?= null private var detailContents = arrayOf("This","Is","a","Test") 

И вот класс адаптера

  class ListAdapter(private val context: Activity, private val Items: List<String>, private val ParentListItems: Map<String, List<String>>) : BaseExpandableListAdapter() { override fun getChild(groupPosition: Int, childPosition: Int): Any = ParentListItems[Items[groupPosition]]!![childPosition] override fun getChildId(groupPosition: Int, childPosition: Int): Long = childPosition.toLong() override fun getChildView(groupPosition: Int, childPosition: Int, isLastChild: Boolean, ListView: View?, parent: ViewGroup): View { var myListView = ListView val contentPosition = getChild(groupPosition, childPosition) as String val inflater = context.layoutInflater if (myListView == null) myListView = inflater.inflate(R.layout.child_list_item, null) val item = myListView!!.findViewById<TextView>(R.id.textView1) item.text = contentPosition return myListView } override fun getChildrenCount(groupPosition: Int): Int = ParentListItems[Items[groupPosition]]!!.size override fun getGroup(groupPosition: Int): Any = Items[groupPosition] override fun getGroupCount(): Int = Items.size override fun getGroupId(groupPosition: Int): Long = groupPosition.toLong() override fun getGroupView(groupPosition: Int, isExpanded: Boolean, ListView: View?, parent: ViewGroup): View { var myListView= ListView val allContents = getGroup(groupPosition) as String if (myListView == null) { val textInflater = context .getSystemService(Context.LAYOUT_INFLATER_SERVICE) as LayoutInflater myListView = textInflater.inflate(R.layout.parent_list_item, null) } val item = myListView!!.findViewById<TextView>(R.id.textView1) item.text = allContents return myListView } override fun hasStableIds(): Boolean = true override fun isChildSelectable(groupPosition: Int, childPosition: Int): Boolean = true } 

В Android Monitor говорится, что исключение Kotlin NullPoint Exception найдено в классе адаптера функции getChildrenCount.

Intereting Posts
Разрывы строк в необработанных строках зависят от платформы? Есть ли какая-либо функция репликации в Котлине? Kotlin – Идиоматический способ удаления повторяющихся строк из массива? Kotlin, Java, JSTL Boolean interop Как использовать обработанную Kotlin оболочку MailChimp в Java Project Chromecast – Cast Dialogue не имеет тени и не может отменить внешний контакт Ошибка: выполнение выполнено для задачи ': app: javaPreCompileDebug'. > java.io.IOException: не удалось удалить annotationProcessors.json Есть ли простой код для развлечения addDetail в Котлине? Firebase: чистый способ использования полей enum в Kotlin / Java? Rx Java Retrofit с плоскими картами работает только один раз Клавиатура скрывает BottomSheetDialogFragment Факториал с использованием цикла `for` в Котлине Как собрать асинхронный ответ с помощью RxJava Andoird anko DSL – добавление текстовых просмотров и создание их «новой строки», когда нет больше ширины экрана? как перебирать Single <List> и отображать в другой список?