Я работаю над приложением с кодировкой Kotlin, используя макет «Навигационный ящик» со списком элементов. Когда я открываю ящик с помощью значка в левом верхнем углу, я хочу, чтобы он уведомил DataSetChanged, чтобы список обновлялся за пределами MainActivity. Это включает нажатие кнопки «Назад», открытие лотка или нажатие на значок с накоплением линий вверху слева
Вот упрощенная версия моего кода, но это, по сути, Навигационный ящик для действий с recyclerView для контекста моего вопроса:
class MainActivity : AppCompatActivity() {
lateinit var drawerLayout: DrawerLayout
lateinit var navView: NavigationView
lateinit var toolbar: Toolbar
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
toolbar = findViewById(R.id.app_bar_toolbar)
setSupportActionBar(toolbar)
drawerLayout = findViewById(R.id.drawer_layout)
navView = nav_view
val toggle = ActionBarDrawerToggle(this, drawerLayout, toolbar,
R.string.navigation_drawer_open, R.string.navigation_drawer_close)
drawerLayout.addDrawerListener(toggle)
toggle.syncState()
}
Я потратил несколько часов, пытаясь сделать все, что мог, но прежде всего я не мог заставить это работать:
override fun onDrawerOpen(view:View){
... myAdapter.notifyDataSetChanged()
super.onDrawerOpen(view)
}
он дает мне подсказку «ничего не переопределяет» или «не используется», и если я пытаюсь добавить его в любой из моих кодов в onCreate, он сообщает «Модификатор« переопределить », не применимый к локальной функции.
Что я делаю не так? Есть ли лучший способ сообщить об изменении данных при открытии ящика?