我的主要活动中有一个导航抽屉,并且在该类中实现了2个额外的接口。当我尝试实现第三个时,我的OnNavigationItemSelectedListener没有被调用。
下面是我的代码
class MainActivity : AppCompatActivity(),
NavigationView.OnNavigationItemSelectedListener,
ProjectListSelectionListener, IProgressViewLoader
{
private var selectProjectData: ProjectDetails? = null
private lateinit var progressView: View
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
setSupportActionBar(toolbar)
val toggle = ActionBarDrawerToggle(
this, drawer_layout, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close
)
drawer_layout.addDrawerListener(toggle)
toggle.syncState()
nav_view.setNavigationItemSelectedListener(this)
setNavMenus()
changeMainView(-1)
}
}
这是我设置片段监听器的地方
override fun onNavigationItemSelected(item: MenuItem): Boolean {
fragment = ProjectListFragment().apply {
selectionListener = this@MainActivity
progressLoader = this@MainActivity
}
drawer_layout.closeDrawer(GravityCompat.START)
return true
}
如果我删除此行progressLoader = this@MainActivity
,它将起作用。另外,如果我删除了IProgressLoader,那么它也可以工作。我在这里做什么错了?