翻了一下Fragment的API、找到了另一個方法來傳遞、就像Activity同樣便捷的實現參數傳遞程序中的一段代碼、是經過Bundle來傳遞的、相比之下第一種方法要簡單一點html
在Activity中定義一個字段、而後添加set和get方法、代碼以下、mTitle就是要傳遞的參數、若是是傳遞對象、能夠把mTitle換成一個對象便可swift
public class DemoActivity { private String mTitle; public String getmTitle() { return mTitle; } public void setmTitle(String title) { this.mTitle = title; } }
Fragment調用方法、須要注意的是在設值的時候要進行強轉一下app
((DemoActivity)getActivity()).getmTitle();
能夠使用bundle進行參數傳遞、這樣在兩個Fragment跳轉的時候就能夠帶上參數了、一樣也能夠傳遞一個複雜的對象ide
ft.hide(getActivity().getSupportFragmentManager().findFragmentByTag("")); DemoFragment demoFragment = new DemoFragment(); Bundle bundle = new Bundle(); bundle.putString("key", "這是方法二"); demoFragment.setArguments(bundle); ft.add(R.id.fragmentRoot, demoFragment, SEARCHPROJECT); ft.commit();
在另一個Fragment獲取參數的方式只須要一個語句、key是本身定義的一個標識、參數的形式只要bundle能傳遞均可以實現this
String string = getArguments().getString("key");
在Activity中加載Fragment的時候、有時候要使用多個Fragment切換、並傳值到另一個Fragment、也就是說兩個Fragment之間進行參數的傳遞、查了不少資料、找到兩種方法、一種是經過共同的Activity傳遞、這種方法是在Activity裏面添加一個字段、來臨時保存要一些值google
翻了一下Fragment的API、找到了另一個方法來傳遞、就像Activity同樣便捷的實現參數傳遞程序中的一段代碼、是經過Bundle來傳遞的、相比之下第一種方法要簡單一點url
在Activity中定義一個字段、而後添加set和get方法、代碼以下、mTitle就是要傳遞的參數、若是是傳遞對象、能夠把mTitle換成一個對象便可spa
publicclassDemoActivity{privateString mTitle;publicString getmTitle(){return mTitle;}publicvoid setmTitle(String title){this.mTitle = title;}}
Fragment調用方法、須要注意的是在設值的時候要進行強轉一下code
((DemoActivity)getActivity()).getmTitle();
能夠使用bundle進行參數傳遞、這樣在兩個Fragment跳轉的時候就能夠帶上參數了、一樣也能夠傳遞一個複雜的對象orm
ft.hide(getActivity().getSupportFragmentManager().findFragmentByTag(""));DemoFragment demoFragment =newDemoFragment();Bundle bundle =newBundle(); bundle.putString("key","這是方法二"); demoFragment.setArguments(bundle); ft.add(R.id.fragmentRoot, demoFragment, SEARCHPROJECT); ft.commit();
在另一個Fragment獲取參數的方式只須要一個語句、key是本身定義的一個標識、參數的形式只要bundle能傳遞均可以實現
String string = getArguments().getString("key");
總結
從上面兩種方法看來、方法一要簡單一些、但我的以爲有點投機取巧、不過也很合Java的開發規範、若是是同一個Activity中要加載不少Fragment的話、這種方法無疑要簡單不少
而方法二是使用了Android的Bundle傳遞的、這種方法應該更官方一點吧、不過在項目開發中、怎麼實現簡單就怎麼來、也沒太多關係