选定的导航项目,传递了额外的信息

时间:2019-03-18 15:30:03

标签: android android-fragments navigation-drawer

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

我想同时传递字符串和整数。

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

是否有通过在片段活动中保留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;
}

1 个答案:

答案 0 :(得分:0)

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