Fragment間で値を受け渡しをする場合
Bundleにセットするだけで簡単にできます。
Bundle bundle = new Bundle();
bundle.putString("hoge", "hoge");
bundle.putString("fuga", "fuga");
Fragment fragment = new Fragment();
fragment.setArguments(bundle);
//onCreateView内
Bundle bundle = getArguments();
String hoge = bundle.getString("hoge");
String fuga = bundle.getString("fuga");
ただクラスの受け渡しをしたい場合がありますよね
public class Clazz{
private String hoge;
private String fuga;
}
その方法ですが、
まず、ClazzクラスにSerializableインターフェースを実装します。
public class Clazz implements Serializable{
//略...
}
あとはClazzクラスをputSerializableでBundleにセットして渡すだけです。
Clazz clazz = new Clazz();
clazz.setHoge("hoge");
clazz.setFuga("fuga");
Bundle bundle = new Bundle();
bundle.putSerializable("CLASS", clazz);
Fragment fragment = new Fragment();
fragment.setArguments(bundle);
//取り出し onCreateView内で
Bundle bundle = getArguments();
Person person = (Person)bundle.getSerializable("CLASS");
Log.d("HOGE",String.valueOf(class.getHoge()));
Log.d("FUGA",String.valueOf(class.getFuga()));