Cas*_*ldi 7 java android fragment fragmentmanager
所以我在这里有这段代码,我正在创建一个新的Fragment并用另一个片段替换它.这很好用.不过,我已经注意到,在第一行的构造函数被调用但是onAttach(),onCreate()等等都没有.如果我要取消注释第二行,它将不起作用,因为updateItem(URL)需要在onCreate()函数中启动的webView.
DetailViewFragment detailFragment = new DetailViewFragment();
//detailFragment.updateItem(URL);
FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.replace(R.id.displayList, detailFragment);
ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
ft.addToBackStack(null);
ft.commit();
Run Code Online (Sandbox Code Playgroud)
非常感谢任何可以使用第二行未使用的帮助.
在实际提交更改之前onAttach(),onCreate()不会调用 、 等。FragmentManager因此,在一段时间后commit()调用转换。如果您需要从一开始就将 URL 传递给,请在调用之前Fragment将其添加到片段的参数包中。然后,您将能够在您的生命周期方法或其他生命周期方法中访问该 URL 。所以你会想要这样的东西:commit()onCreate()
DetailViewFragment detailFragment = new DetailViewFragment();
Bundle args = new Bundle();
args.putString(DetailViewFragment.INIT_URL, URL);
detailFragment.setArguments(args);
ft.replace(R.id.displayList, detailFragment);
ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
ft.addToBackStack(null);
ft.commit();
Run Code Online (Sandbox Code Playgroud)
现在,onCreate()您可以调用getArguments()以获取包并检索您的活动传递的 URL。
| 归档时间: |
|
| 查看次数: |
6348 次 |
| 最近记录: |