我已经实现了一个DialogFragment类,该类显示一个对话框并在按下按钮时调用自定义侦听器。
因为我想在许多项目中重用这个类,所以我需要在创建片段时传递监听器。但是我不知道怎么做。
我知道我不应该在构造函数中传递监听器,因为如果必须重新创建片段而Android不能通过Bundle参数传递监听器,那么Android可以调用默认构造函数,因为Bundle不支持它。
我找到的唯一解决方案是让活动实现自定义侦听器并在onAttach方法中检查它。问题是,这种方式会将实现类限制为所有者活动,并且可能不适合应用程序。
您是否找到了更好的解决方案?
谢谢!
答案 0 :(得分:0)
您通常使用静态newInstance()
方法来创建片段并传入您的片段可能需要的任何值。这是传递你的听众的方法。
在这里查看一下newInstance()
方法也被用作示例:
http://developer.android.com/reference/android/app/Fragment.html