从片段类调用活动函数给出了NPE

时间:2013-12-31 13:13:17

标签: java android android-activity android-fragments nullpointerexception

我有一个活动,其父类是片段让我们称它为片段A,我有另一个片段B从哪里我想调用与片段A相关的活动的函数,如何调用这个函数?我试过这个: Respond和SResponses是其函数调用的活动。只有在这些活动处于活动状态时才会调用这些函数。

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();

}

但是它给了我Null指针异常。请帮忙。

2 个答案:

答案 0 :(得分:2)

您的片段并不总是附加到某个活动,因此有时getActivity()可能会返回null。

了解这个Coordinating With The Activity Lifecycle

答案 1 :(得分:0)

如果希望片段A与片段B通信,则应在片段A(父活动必须实现)内定义接口,以将数据从片段A发送到父活动,并从父活动发送该数据到片段乙

Check this link.