我有一个活动A。在这个活动的stepperLayout中,我使用了片段B。我从片段B调用对话片段C。在对话片段C上,我调用listenerInterface方法,但侦听器接口为空。所以有一个空指针异常。活动A没有实现接口。只有片段B实现了它。
My Fragment B
dialogFragmentC = DialogFragmentC .newInstance();
dialogFragmentC .show(getFragmentManager(), "");
My DialogFragment C
@Override
public void onAttach(Context context) {
super.onAttach(context);
try {
this.listener = (DialogFragmentListener) context;
} catch (Exception e) {
Timber.i(e);
}
}
由于您从一个片段启动一个对话框片段,因此传统的方法将不起作用。
解决方案1:
使用子片段管理器启动:<代码>对话框FragmentC。显示(getChildFragmentManager(),“”) 然后检查父片段:<代码>此。listener=(DialogFragmentListener)getParentFragment()
解决方案2:
使用目标片段:Android-getTargetFraank和setTargetFraank-它们用于什么。创建dialogFragmentC时,将dialogFragmentC的目标片段设置为FragmentB,并在dialogFragmentC中使用getTargetFraank获取侦听器。
我试图在列表视图的onItemClick中用另一个片段替换片段,我想将所选项目名称从列表片段发送到另一个片段,但它显示空指针异常 @覆盖onItemClick上的公共无效(AdapterView ar0,视图,int位置,长id){ 但是同样的概念在下面的按钮点击中工作
我在一个片段中制作了一个listview列表视图的适配器有一个空指针异常,但Arraylist和适配器不为空。 错误:lvElevator不能为null 错误是针对以下行的 电梯。适配器=EAdapter
通常在片段中,我在onAttach()中附加一个监听器,并在onDetach()中取消监听器。 是否需要在onDetach()中将侦听器设置为null? 虽然我这样做是因为它使代码看起来更加对称,但似乎没有必要这样做,因为片段已经被销毁了,因为根据片段的生命周期,之前已经调用了onDestroyView()和onDestroy()。 提前谢谢。
我试图展示一个祝酒词,当我的API请求不工作,由于没有互联网连接。首先,我尝试在try块失败时显示一个Toast,然后在catch块中显示这个Toast。我尝试了developer.android.com的方法,但我甚至无法启动应用程序。 我在catch-block中的代码是这样的: 我似乎对方法有问题,因为它突出显示为红色。这似乎是一个问题,因为我在一个片段内部使用这个。我在使用时读到了一些内容
我正在实现一个片段,该片段调用两个。