如何处理不同片段中侧边菜单的 onClick

How to handle onClick from side menu in different fragments

提问人:gojic 提问时间:7/8/2021 更新时间:7/8/2021 访问量:42

问:

好的,所以我有侧边菜单,每当单击它时,它都应该从特定片段中调用一些代码,我将 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;
}

这是行不通的,因为我无法将侦听器附加到不在我的片段布局中的内容。 我有大约七个片段,当单击侧边菜单上的相同项目时,每个片段都应该实现不同的代码。如何做到这一点?

Android 导航抽屉

评论

0赞 Selvin 7/8/2021
让你的片段实现......在“当历史记录”菜单被折叠时,检查当前活动片段,以及它是否实现了它的调用......interface HistoryExecutor { void Show(); }MainActivityHistoryExecutorShow
0赞 Zain 7/8/2021
应该创建您的片段,以便在其上调用一些代码。

答: 暂无答案