我有一个活动A。在此活动的stepperLayout中,我使用片段B。我从片段B调用dialogFragmentC。比对DialogFragment C,我调用listenerInterface方法,但侦听器接口为null。因此,存在一个空指针异常。活动A未实现接口。只有片段B实现了它。
var sum = (from order in dbContext.ORDERS
join orderDetails in dbContext.ORDER_DETAILS
on order.ID equals orderDetails.ORDER_ID
where order.IS_DELIVERED == true && order.IS_RETURNED_BACK == false
select new { orderDetailTotal = od.QUANTITY * od.PRODUCT_PRICE) }).Sum(x => x.orderDetailTotal);
答案 0 :(得分:0)
由于您是从片段中启动对话框片段,因此传统方式将无效。
解决方案1:
使用子片段管理器启动:dialogFragmentC.show(getChildFragmentManager(), "");
,然后检查父片段:this.listener = (DialogFragmentListener) getParentFragment();
解决方案2:
使用目标片段:Android - getTargetFragment and setTargetFragment - What are they used for。创建dialogFragmentC时,将dialogFragmentC的目标片段设置为FragmentB,并在dialogFragmentC中使用getTargetFragment获取侦听器。