Android中Fragment的Arguments

Android中Fragment的Arguments

导读:向framgent传参数,用argument是最好的方式。下面代码是做app用到的。

Activity:

public static ArticleFragment newInstance(String param1) {
        ArticleFragment fragment = new ArticleFragment();
        Bundle args = new Bundle();
        args.putString(ARTICLE_TYPE, param1);
        fragment.setArguments(args);
        return fragment;
    }

Fragment:

 ArticleFragment articleFragment = ArticleFragment.newInstance(result.get(i).getCode());

为啥不用其他两种不好的方式
1. 重载构造函数


public class MyFragment extends Fragment {

    public MyFragment(MyParameter p){
        //将参数保存起来
    }

}

一旦由于什么原因(横竖屏切换)导致你的Fragment重新创建。你之前传递的参数都不见了,因为recreate你的Fragment的时候,调用的是默认构造函数。
2.intent传参数

    public void onCreate(Bundle savedInstanceState)  
    {  
        super.onCreate(savedInstanceState);  

        mArgument = getActivity().getIntent().getStringExtra(ARGUMENT);  

    }

我们用Fragment的一个很大的原因,就是为了复用。这么写,相当于这个Fragment已经完全和当前这个宿主Activity绑定了,复用直接废了

你可能感兴趣的:(Android)