提问人:gojic 提问时间:7/8/2021 更新时间:7/8/2021 访问量:42
如何处理不同片段中侧边菜单的 onClick
How to handle onClick from side menu in different fragments
问:
好的,所以我有侧边菜单,每当单击它时,它都应该从特定片段中调用一些代码,我将 NavigationView 放在 MainActivity 中,所以当我尝试在我的片段中调用它时,显然我会得到 NullPointerException,因为它与我的片段不在同一布局中。我正在使用数据绑定和导航。
所以基本上我尝试了这个:在我的 on create in fragment 中并获取 NullPointerException ,我知道为什么,所以请不要发布我这个错误是什么。 NavigationView navigationView = (NavigationView) view.findViewById(R.id.nav_view); navigationView.setNavigationItemSelectedListener(this);
后来在我的片段中,我会这样说:
@SuppressLint("NonConstantResourceId")
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
// Handle navigation view item clicks here.
if (item.getItemId() == R.id.history_TV) {
viewModel.myAssetsResponse().observe(getViewLifecycleOwner(), this::consumeResponse);
viewModel.getAssets();
}
return true;
}
这是行不通的,因为我无法将侦听器附加到不在我的片段布局中的内容。 我有大约七个片段,当单击侧边菜单上的相同项目时,每个片段都应该实现不同的代码。如何做到这一点?
答: 暂无答案
评论
interface HistoryExecutor { void Show(); }
MainActivity
HistoryExecutor
Show