【问题标题】:calling function of activity from fragment class gives NPE从片段类调用活动函数给出 NPE
【发布时间】:2013-12-31 13:13:16
【问题描述】:

我有一个Activity,它的父类是Fragment,我们称之为Fragment A,我有另一个Fragment B,我想从那里调用与Fragment A相关的Activity的函数,如何调用这个函数?我试过这个: 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 检查
  • @Raghunandan 检查编辑,我知道该片段由活动托管。我有一个片段开始另一个活动,我想从其他片段调用该活动的函数。
  • @user3091531 查看有关片段的文档

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


【解决方案1】:

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

阅读Coordinating With The Activity Lifecycle

【讨论】:

    【解决方案2】:

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

    Check this link.

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-27
    • 2020-07-11
    • 1970-01-01
    • 2012-09-20
    • 1970-01-01
    相关资源
    最近更新 更多