翻了一下Fragment的API、找到了另外一個方法來傳遞、就像Activity一樣便捷的實現參數傳遞程序中的一段代碼、是通過Bundle來傳遞的、相比之下第一種方法要簡單一點
FRAGMENT參數傳遞方法一
在Activity中定義一個字段、然后添加set和get方法、代碼如下、mTitle就是要傳遞的參數、如果是傳遞對象、可以把mTitle換成一個對象即可
public class DemoActivity { private String mTitle; public String getmTitle() { return mTitle; } public void setmTitle(String title) { this.mTitle = title; } }
Fragment調用方法、需要注意的是在設值的時候要進行強轉一下
((DemoActivity)getActivity()).getmTitle();
FRAGMENT參數傳遞方法二
可以使用bundle進行參數傳遞、這樣在兩個Fragment跳轉的時候就可以帶上參數了、同樣也可以傳遞一個復雜的對象
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能傳遞都可以實現
String string = getArguments().getString("key");
ANDROID FRAGMENT傳遞參數_FRAGMENT之間傳值的兩種方法
2014-11-22 14:49:02 By: dwtedx
在Activity中加載Fragment的時候、有時候要使用多個Fragment切換、並傳值到另外一個Fragment、也就是說兩個Fragment之間進行參數的傳遞、查了很多資料、找到兩種方法、一種是通過共同的Activity傳遞、這種方法是在Activity里面添加一個字段、來臨時保存要一些值
翻了一下Fragment的API、找到了另外一個方法來傳遞、就像Activity一樣便捷的實現參數傳遞程序中的一段代碼、是通過Bundle來傳遞的、相比之下第一種方法要簡單一點
FRAGMENT參數傳遞方法一
在Activity中定義一個字段、然后添加set和get方法、代碼如下、mTitle就是要傳遞的參數、如果是傳遞對象、可以把mTitle換成一個對象即可
publicclassDemoActivity{privateString mTitle;publicString getmTitle(){return mTitle;}publicvoid setmTitle(String title){this.mTitle = title;}}
Fragment調用方法、需要注意的是在設值的時候要進行強轉一下
((DemoActivity)getActivity()).getmTitle();
FRAGMENT參數傳遞方法二
可以使用bundle進行參數傳遞、這樣在兩個Fragment跳轉的時候就可以帶上參數了、同樣也可以傳遞一個復雜的對象
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傳遞的、這種方法應該更官方一點吧、不過在項目開發中、怎么實現簡單就怎么來、也沒太多關系