android fragment傳遞參數_fragment之間傳值的兩種方法

在Activity中加載Fragment的時候、有時候要使用多個Fragment切換、並傳值到另一個Fragment、也就是說兩個Fragment之間進行參數的傳遞、查了不少資料、找到兩種方法、一種是經過共同的Activity傳遞、這種方法是在Activity裏面添加一個字段、來臨時保存要一些值

翻了一下Fragment的API、找到了另一個方法來傳遞、就像Activity同樣便捷的實現參數傳遞程序中的一段代碼、是經過Bundle來傳遞的、相比之下第一種方法要簡單一點html

 

FRAGMENT參數傳遞方法一

在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();

FRAGMENT參數傳遞方法二

能夠使用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");  

 

ANDROID FRAGMENT傳遞參數_FRAGMENT之間傳值的兩種方法
2014-11-22 14:49:02  By: dwtedx

在Activity中加載Fragment的時候、有時候要使用多個Fragment切換、並傳值到另一個Fragment、也就是說兩個Fragment之間進行參數的傳遞、查了不少資料、找到兩種方法、一種是經過共同的Activity傳遞、這種方法是在Activity裏面添加一個字段、來臨時保存要一些值google

翻了一下Fragment的API、找到了另一個方法來傳遞、就像Activity同樣便捷的實現參數傳遞程序中的一段代碼、是經過Bundle來傳遞的、相比之下第一種方法要簡單一點url

 

FRAGMENT參數傳遞方法一

在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();

 

FRAGMENT參數傳遞方法二

能夠使用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傳遞的、這種方法應該更官方一點吧、不過在項目開發中、怎麼實現簡單就怎麼來、也沒太多關係

相關文章
相關標籤/搜索