已选择导航项,传递额外信息
Nav item selected, pass extra info
我无法弄清楚如何将额外信息传递到片段中。
我想同时传入字符串和整数。
我已经设法在 getSupportFrag 部分之前使用 onClick 和 intent.putExtra 在另一个页面和按钮上使用 intents。但是,我曾尝试对导航抽屉采用相同的方法,但没有成功。它实际上出于某种原因打开了一个不相关的页面。
有没有办法在片段 activity 中保留 testStr 和 testInt 部分?
接收额外数据的片段使用
testStr = activity.getIntent().getStringExtra("test str");
testInt = activity.getIntent().getIntExtra("test int", 0);
主要activity
@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 与 Fragment.setArguments 一起使用。将所需参数添加到 Bundle 对象并将其添加到片段中。在片段内调用 getArguments() 以获取 Bundle。请在此处查看确切的用法示例:
How to use setArguments() and getArguments() methods in Fragments?
我无法弄清楚如何将额外信息传递到片段中。
我想同时传入字符串和整数。
我已经设法在 getSupportFrag 部分之前使用 onClick 和 intent.putExtra 在另一个页面和按钮上使用 intents。但是,我曾尝试对导航抽屉采用相同的方法,但没有成功。它实际上出于某种原因打开了一个不相关的页面。
有没有办法在片段 activity 中保留 testStr 和 testInt 部分?
接收额外数据的片段使用
testStr = activity.getIntent().getStringExtra("test str");
testInt = activity.getIntent().getIntExtra("test int", 0);
主要activity
@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 与 Fragment.setArguments 一起使用。将所需参数添加到 Bundle 对象并将其添加到片段中。在片段内调用 getArguments() 以获取 Bundle。请在此处查看确切的用法示例: How to use setArguments() and getArguments() methods in Fragments?