我有一个活动,根据按钮点击实例化4个不同的碎片。 我必须将其他值传递给我当前处于活动状态的片段。
最初,当我通过setArguments传递值时,正在传递值。但是第二次没有将值传递给Fragment。
我尝试在onCreate和onCreateView方法中记录并放置断点,但是第二次没有调用这些方法。
这是我的代码
活动代码
Bundle bundle = new Bundle();
bundle.putInt("from", "1");
bundle.putString("label","One");
MyFragment1 myFragment1 = new MyFragment1();
myFragment1.setArguments(bundle);
getSupportFragmentManager()
.beginTransaction()
.addToBackStack(null)
.replace(R.id.fragment1, myFragment1)
.commitAllowingStateLoss();
片段中的代码
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Bundle b = getArguments();
if(b!=null)
{
}
}
答案 0 :(得分:0)
来自活动
Bundle bundle = new Bundle();
bundle.putInt("from", "1");
bundle.putString("label","One");
// set Fragmentclass Arguments
Fragmentclass fragobj = new Fragmentclass();
fragobj.setArguments(bundle);
并在Fragment onCreateView方法中:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
String label = getArguments().getString("label");
int i=getArguments().getInt("from");
return inflater.inflate(R.layout.fragment, container, false);
}
答案 1 :(得分:0)
找到解决方案
我在活动中的onCreate中提供了这行代码。
MyFragment1 myFragment1 = new MyFragment1();
在将它传递给碎片之前我必须重新复活。