Subclass Fragment
繼承 Fragment 時,要提供 Public empty constructor,否則會出現下列錯誤訊息:android.support.v4.app.Fragment$InstantiationException: Unable to instantiate fragment 省略: make sure class name exists, is public, and has an empty constructor that is public ...
詳見: http://blog.csdn.net/xplee0576/article/details/43057633
還有 subclass of fragment 如果是 non-static inner class,既使提供了 Public empty
constructor,仍會出現錯誤而且還會造成 Memory Leak(Implicit reference to Activity),
必須是 static class 或 non-inner class。
Fragments Communication
Fragments 的溝通可以分成下列三種情況:- Activity to Fragment
- Activity 建立 bundle 物件 並透過 Fragment.setArguments(bundle) 來傳遞;而fragment 則透過 Bundle bundle = getArguments() 來接收。
- 在 Fragment 中建立 public method 來讓 Activity 引用。
EX: getSupportFragmentManager().findFragmentById(R.id.fragment).publicMethod(args) - Fragment to Activity
- 利用 interface(listener) 的方法,讓 Activity 實作 listener。
- 在 Activity 建立 public method 讓 fragments 引用。
- Fragment to Fragment
- 利用上述兩種方式來實現。
沒有留言:
張貼留言