如何将参数传递给片段?

时间:2015-03-16 08:01:01

标签: android android-fragments

我试图将对象传递给我的片段。我是这样做的

MenuFragment fragment = new MenuFragment(item);
        setFragment(fragment);

但我知道在片段中使用构造函数不需要。我这样做了

public static MenuFragment newInstance(String desc) {
        MenuFragment f = new MenuFragment();
        Bundle b = new Bundle();
        b.putString("desc", desc);
        f.setArguments(b);
        return f;
    }

但不是如何传递字符串和我的对象?

2 个答案:

答案 0 :(得分:1)

编辑:如果你想传递一些自定义对象,请使用

bundle.putSerializable(key, object)

方法。您的对象必须实现java.io.Serializable接口。

然后在您的片段getArguments()方法中调用:

public View onCreateView(LayoutInflater inflater,ViewGroup containerObject, Bundle savedInstanceState){
    //...

    Bundle bundle = getArguments(); 
    Myclass itemObject  = (Myclass) bundle.getSerializable("yourKey");

    //... 
 }

答案 1 :(得分:0)

在片段的public void onCreate函数中,执行以下操作:

if (getArguments() != null) {
    String param = getArguments().getString("desc");
}