导航项目已选中,传递额外信息

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了导航项目已选中,传递额外信息相关的知识,希望对你有一定的参考价值。

我无法弄清楚如何将额外的信息传递到片段中。

我想传入一个字符串和int。

我已经设法在getSupportFrag部分之前使用onClick和intent.putExtra在另一个页面和按钮上使用Intent。但是,我试图对导航抽屉做同样的方法而没有运气。它实际上由于某种原因打开了一个不相关的页面。

反正有没有让testStr和testInt部分保持在片段活动中?

接收额外数据的片段使用

testStr = activity.getIntent().getStringExtra("test str");
testInt = activity.getIntent().getIntExtra("test int", 0);

主要活动

@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
    switch (item.getItemId()) {

    case R.id.nav_test1:
        //Used in a fragment activity on buttons and works with OnClick
        Intent intent = this.getIntent();
        intent.putExtra("test str", "test value");
        intent.putExtra("test int", 0);
        getSupportFragmentManager().beginTransaction().
        replace(R.id.fragment_container,
                    new LevelX()).addToBackStack(null).commit();
        //end

  }
  drawer.closeDrawer(GravityCompat.START);
  return true;
}
答案

您应该使用Bundle with Fragment.setArguments。将所需参数添加到Bundle对象并将其添加到片段。在片段内部调用getArguments()来获取Bundle。请在此处查看确切的用法示例:How to use setArguments() and getArguments() methods in Fragments?

以上是关于导航项目已选中,传递额外信息的主要内容,如果未能解决你的问题,请参考以下文章

如何在导航抽屉中的两个片段之间传递数据

将数据从活动传递到底部导航栏的片段

使用导航从工具栏菜单项单击在片段之间传递数据 - Kotlin

如何在Android中的主/细分片段之间进行适当的导航?

如何在导航抽屉活动模板中的片段之间传递字符串变量

通过导航组件在底部导航片段之间传递数据