我希望能够使用相同的Dialogfragment
将数据传回用于启动它的activity
。我还使用fragment
启动它。如何实现一个适用于fragment
和activity
的侦听器?
以下是我在DialogFragment
中设置界面的代码:
public interface RiskListener {
void riskAdded(Geometry envelope, Geometry point);
void riskUpdated();
}
private RiskListener listener;
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
listener = (RiskListener) getTargetFragment();
}
我正在片段中创建DialogFragment
,如下所示:
FragmentManager fm = getFragmentManager();
RiskDialogFragment riskDialogFragment = RiskDialogFragment.newInstance();
if (!riskDialogFragment.isVisible()) {
riskDialogFragment.setTargetFragment(context, 0);
riskDialogFragment.show(fm, "RiskDialog");
}
如何设置DialogFragment
以使用Activity
?
答案 0 :(得分:1)
RiskListener
RiskListener
riskListener = (RiskListener) getActivity();
(onAttach()
方法应该是最佳选择)注意:我的建议是花些时间学习一些MVVM和RxAndroid。它将帮助您解决非常容易和可靠的问题。 Here是一篇文章,但您可以在网上找到更多内容。