java从fragment类调用activity函数给出了NPE
我有一个活动,它的父类是fragment,我们称它为fragment A,我有另一个fragment B,我想从这里调用与fragment A相关的活动的函数,如何调用这个函数?我试过这个: 响应和响应是我调用其功能的活动。只有当这些活动处于活动状态时,才会调用这些函数
if (Respond.getActivityStatus() == true)
{
if (Respond.getrthreadid().compareTo(threadid) == 0)
{
//Respond res = new Respond();
//res.notiffy(message);
((Respond)getActivity()).notiffy(message);
}
}
if (SResponses.getActivityStatus() == true)
{
if (SResponses.getsrthreadid().compareTo(threadid) == 0)
{
//SResponses sres = new SResponses();
// sres.notiffy(message);
((SResponses)getActivity()).notiffy(message);
}
}
}
} catch (RuntimeException e) {
// TODO: handle exception
e.printStackTrace();
}
}
}
} catch (RuntimeException e) {
// TODO: handle exception
e.printStackTrace();
}
但它给了我空指针异常。请帮忙
# 1 楼答案
如果希望片段A与片段B通信,则应在片段A(父活动必须实现)内定义一个接口,将数据从片段A发送到父活动,并从父活动将数据发送到片段B
Check this link.
# 2 楼答案
您的片段并不总是附加到活动,因此getActivity()有时可能会返回null
读一下这个Coordinating With The Activity Lifecycle