我正在使用带有项目列表的Navigation Drawer Layout开发Kotlin编码的应用程序。当我使用左上方的图标打开抽屉时,我希望它通知notifyDataSetChanged,以便从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中的任何代码中,它会指出“修饰符'覆盖'不适用于本地函数。
我在做什么错?打开抽屉时,有没有更好的方法来通知数据更改?