从活动调用片段方法时出现空指针异常

Posted

技术标签:

【中文标题】从活动调用片段方法时出现空指针异常【英文标题】:nullpointerexception when calling fragment methods from activity 【发布时间】:2013-01-16 02:37:36 【问题描述】:

我有一个片段活动,它通过以下方式调用其他片段:

FragmentView1 f = (FragmentView1) this.getSupportFragmentManager()
                .findFragmentByTag(getFragmentTag(0));

而我的 getFragmentTag() 函数是:

private String getFragmentTag(int pos)
    return "android:switcher:"+R.id.viewpager+":"+pos;   //fragmentpageradapter auto generated tag

不是问题是每当我调用 f.somemethod 时,我都会得到一个空指针异常。

我试过了

Log.w("HELLO1",""+ f.getTag());

它返回 nullpointerexception 。

【问题讨论】:

我猜你的 getFragmentTag(0) 没有返回你所期望的 不,它返回了正确的标签。我在 FragmentView1 中调用了“getTag()”,在 FragmentActivity 中调用了“getFragmentTag(0)”,两者都返回了相同的结果 【参考方案1】:

findFragmentByTag() 返回 null,因为它没有根据 docs 找到具有指定标记的片段。确保您在布局中或在事务时以编程方式设置片段的标签。

有关更多信息,请参阅this 问题。

【讨论】:

我正在使用 fragmentpageradapter,它会自动为片段生成标签,我正在使用 getFragmentTag,它会检索片段的自动生成标签

以上是关于从活动调用片段方法时出现空指针异常的主要内容,如果未能解决你的问题,请参考以下文章

访问片段的子视图时出现空指针异常

Android - 调用自定义 View 方法时出现空指针异常

从不同的类调用方法时出现空指针异常

尝试从 Kotlin 中的另一个活动访问 EditText 时出现空指针异常

Java + Android -> 开始新活动时出现空指针异常

尝试开始新活动时出现空指针异常